(1)数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
(2)指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。
#include <iostream.h>
void main()
{
char a[]="hello";
a[0]='H';
// *a++='H';//不允许,a 是指针常量(可以这样理解)
cout<<a<<endl;
char *p="world";
//p[0]='W';//不允许,指针p指向常量字符串"world"(位于静态存储区,内容为world/0)
cout<<p<<endl;
}
}
----摘自<<高质量C++编程>>