数组与指针的差别
数组与指针的区别
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 }