指针与数组的区别

源自《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)数组名作为函数的形参时,沦为普通指针




posted @ 2011-09-13 22:44  foreverlearn  阅读(218)  评论(0编辑  收藏  举报