源自《c语言深度剖析》
指针和数组的对比
区别:
1:存储的内容
指针:保存数据的地址,任何存入指针变量p的值都会被当做地址来处理,p本身的地址,由编译器另外存储,存储在哪里 我们并不知道
数组:保存数据,数组名a代表的是数组首元素的首地址,&a是整个数组的首地址,即这个对象的地址,a本身的地址由编译器另外存储,存在哪里我们并不知道
2:访问数据的方式:
-----------------------------------------------------------------------------------------------------------------------------------------------
数组名的本质
(1)数组名指代一种数据结构,这种数据结构就是数组
char str[10];
cout<<sizeof(str)<<endl;
输出结果10,str指向其指代数据结构char[10]
(2)数组名可以转换为指向其指代实体的指针,而且是一个常量指针,不能做自增,自减等操作,不能被修改 char str[10],str++;//编译出错
(3)数组名作为函数的形参时,沦为普通指针