一道C语言试题

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:56:45
若有以下定义,则*(p+5)表示_______
int a[10],*p=a;

A)元素a[5]的地址

B)元素 a[5]的值

帮忙详细地解释一下!!!!

int a[10],*p=a;/*就是将数组a的首地址给指针变量p,*(p+5)就相当于a[5]的值
如a[5]=3则*(p+5)=3

所以本题答案为B

p是a的首地址,p+5就是a的第五个元素的地址,在用*运算符取他的值,不就是 a[5] 了,选B

b啊
在使用指针时 p表示的是地址 *p表示的是值
所以*(p+5)表示的就是元素a[5]的值

定义了*p=a,现在p指向的是数组a的首地址 就是a[0]的地址,加5就是往后移5个单元 就是a[5]的地址了,在加个指针运算符* 就是a[5]的值了,一维数组还比较简单,二维数组容易乱