上海动迁房办产证流程:关于C语言

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/08 07:54:06
main()
?? { int a[]={2,4,6,8,10}, y=0, x, *p;
?? p=&a[1];
?? for(x= 1; x<3; x++) y += p[x];
?? printf("%d\n",y);
?? }
p[x]怎么理解啊

int *p声明了一个整型指针变量p;
p=&a[1]是把数组a[1]的值赋予给p了,由于p是指针,所以p只代表一个指针指向变量的值。因此,p[x]就相当于数组a[x]

首先,你要理解p是可以加上一个整数的,这里p[x]就是
*(p+x)的意思了。
由于p是一个指向int类型的指针,而a又是一个数组,p初始化为a[1]即第二个元素的地址,所以for循环中,
x=1,2时,p[x]分别是a[2],a[3],
所以楼上的稍微粗心了一点:)