1. 修改内容上的区别
char str[] = "hello world"; // 数组
str[0] = 'a'; // 正常
char *pStr = "hello world"; // 指针
pStr[0] = 'a'; // 编译通过,运行错误!!
2. sizeof
运算符sizeof 可以计算出数组的容量(字节数),而sizeof(p)p作为指针得到的只是一个指针变量的大小,而不是它所指的内存容量。
int s1 = sizeof(str); // s1=12
int s2 = sizeof(pStr); // s2=4
注意:
当数组作为函数参数传入时,该数组自动退化为同类型的指针。
void Func(char a[100])
{
cout<<sizeof(a)<<endl; // 4而不是100
}