数组和指针的区别

 我来答
75_飞星
2015-05-28 · TA获得超过589个赞
知道小有建树答主
回答量:423
采纳率:66%
帮助的人:253万
展开全部

数组是以某种类型为单位的连续的一段内存空间作为存储区域,其中存储相应的数据。其变量名代表数组起始空间地址,也就是首元素的地址。

指针是的本质是内存中某一字节的地址,其存储在变量名所对应的内存空间中。


之所以说数组的本质是指针,是因为在在具体实现上,数组是基于指针实现的,编译器只提供了数组首元素的地址,因此在访问时需要使用首地址+偏移量的形式,所谓的偏移量由下标决定。这样一来情况就变成了这样:

假设存在数组a[10],

当我们访问第一个元素是可以使用a[0],也可以使用*a,或者*(a+0),

当我们访问第二个元素时可以使用a[1],同样的,指针表示为*(a+1),


你可以看这段代码理解一下

#include<stdio.h>
int main(void)
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("%d %d %d\n",a[0],*a,*(a+0));
printf("%d %d\n",a[1],*(a+1));
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式