c++指针跟数组的主要区别
最近学习c++,看到《高质量c++/c编程指南》的内存分配那一章,讲到数组跟指针的区别,觉得有必要记录一下,以便后查看
指针跟数组的区别主要有三个:
1:修改内容
数组可以随意修改其中某一项的内容,只要不超过数组的边界就可以了。而对于指向常量的指针则不可以进行修改,尽管从语法上进行修改并没有什么不妥,但是在运行会导致错误。另外说一点,对于越界操作的数组跟指针,虽然结果是未知的,但是语法上却是可以通过的
char a[] = "hello world"; char*p =a; cout<< sizeof(a) << endl; // 12 字节 cout<< sizeof(p) << endl; // 4 字节 void Func(char a[100]) { cout<< sizeof(a) << endl; // 4 字节而不是 100 字节 }