(1) arrays are either created in static storage areas (such as global arrays) or on stacks. The array name corresponds to (rather than pointing to) a piece of memory, and its address and capacity remain unchanged during the lifetime, only the content of the array can be changed.
(2) A pointer can point to any type of memory block at any time. Its feature is "variable". Therefore, we often use pointers to operate dynamic memory. Pointers are far more flexible than arrays, but they are more dangerous.
# Include <iostream. h>
Void main ()
{
Char A [] = "hello ";
A [0] = 'H ';
// * A ++ = 'H'; // No. A is a pointer constant (which can be understood as follows)
Cout <A <Endl;
Char * P = "world ";
// P [0] = 'W'; // No. the pointer P points to the constant string "world" (in the static storage area, the content is World/0)
Cout <p <Endl;
}
}
---- Excerpt from