若有定义 int a 2 3[10] ,*p=a; 则 *(p+6) 表示什么意思

书上答案选A;但是在c++上运行(A选項的程序)得到答案为4;按照逻辑p+=2;这一条语句的结果就是a[2],后面自增1,就变成a[3]那结果就是4了!但答案是3,望网友解答!!!... 书上答案選A;但是在c++上运行(A选项的程序)得到答案为4;按照逻辑p+=2;这一条语句的结果就是a[2],后面自增1,就变成a[3]那结果就是4了!但答案是3,望网伖解答!!!

话说p++后,p的值会加1

n=p++就可以看到n的值还是p。

A的意思应该是p++本身的值

补充一点,如果是++p的话值就是a[3]了。不管是p++还是++p结果都会自增1,但是它本身的值要看加号在前还是在后

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验伱的手机镜头里或许有别人想知道的答案。

}

本题考查C语言的数组元素的引用方法我们在前面已经讲过了,比如数组元素a[0]可以用表达式*(p+0)即*p来引用;对于数组元素a[1],可以用表达式*(p+1)来引用在这里,p+1的值就是数组元素a[1]的地址对此地址使用“间接访问运算符”*(p+1)就代表存储单元a[1],注意一对圆括号不可少。同样对于数組元素a[2],则可以用表达式*(p+2)来引用……,对于数组元素a[9]可以用表达式*(p+9)来引用。因此当指针变量p指向a数组的起始地址时,若0≤i<10则数组元素a[i]可以用*(p+i)来表示。

}

我要回帖

更多关于 设有定义int k 0 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信