首页 新闻 会员 周边

指针与数组间有什么关系?

0
悬赏园豆:10 [已解决问题] 解决于 2017-04-13 22:50

指针与数组间有什么关系?指针指向数组时是指向的首地址,假如有

int *p=(int *)malloc(sizeof(int)*5);
for(int i=0;i<5;i++)
    p[i]=0;

那么,上面的p[i]代表的是什么意思呢?十分期待您的回答。

xiongyulong的主页 xiongyulong | 初学一级 | 园豆:190
提问于:2016-08-17 09:36
< >
分享
最佳答案
0

int *p=(int *)malloc(sizeof(int)*5); 这句话表示分配了一个5个int类型的控件,并把首指针交给p

然后p就可以使用 下标p[i] 来访问元素,也可以使用*(p+i) 来访问。

比如,数组名就是一串连续地址的头指针,

 int a [10]; 当然也可以使用 *(a+i) 来访问。

数组和指针本身是有很大联系的,

 

收获园豆:8
小精灵儿Pawn | 菜鸟二级 |园豆:470 | 2016-08-17 10:19
其他回答(1)
0

p本身是被赋予了指向一个int类型(通常4字节)大小内存的地址的能力,而p+1则是指向了p向高地址偏移一个int(根据指针p的类型而定)大小的地址,对地址p解引用(即*p)则是取这个地址上所保存的值。然后解释下p[i]的意思,p[i]等价于*(p+i)

收获园豆:2
轻水涟漪 | 园豆:204 (菜鸟二级) | 2016-08-17 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册