通过指针变量输出a数组的10个元素

如题所述

p=a时是把a数组的首地址赋给p,下面的关于p的操作相当于对数组a的操作,主要通过首地址+偏移地址来进行读入,此时p指向数组的最后一个元素,后面的“p=a”这句又把a的首地址赋值给p,从头输出数组。而i在这里只是一个循环变量,跟p没有关系,你也可以把后面的“for(i=0;i<10;i++;p++)printf("%d",*p);"改成“for(i=0;i<10;i++)建议你去看一下关于数组指针的介绍,这样会更明白一些。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-05
比如数组a的地址是1000,那a[1]的地址是1000,a[2]是1002,a[3]是1004,依次类推
p=a,不是把首元素给P,是把a的地址即a[1]的地址给p,p++就是根据变量类型自加,比如int型p++就是地址+2,char型就是+1
可见p值在循环后为,1000,1002,1004
所以初始时p=a[0],p自加一次后p=a[1],p=a[2]....
相似回答