永发信息网

有定义int i=2,a[10],*p=&a[i],则与*p++等价的? 答案是a[i++]我想问

答案:3  悬赏:30  手机版
解决时间 2021-02-14 04:47
  • 提问者网友:孤山下
  • 2021-02-13 16:22
有定义int i=2,a[10],*p=&a[i],则与*p++等价的? 答案是a[i++]我想问为什么不是a[i]?
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-02-13 16:49
我觉得是题的问法不一样!题中说的是“等价”!如果单单是指的输出的值,*p++和a[i++]还有a[i]的值是一样的!但是要论“等价”,那么就只能选择a[i++],在代码中*p++和a[i++]都是指的运算后地址向后移“1”。这才是”等价“!我觉得吧,要分清”等价“和”相等“的区别!
全部回答
  • 1楼网友:英雄的欲望
  • 2021-02-13 18:17
因为第一个p=a后,指针指向数组第一个元素的位置,经过第一次for循环后,p已经指向数组结尾了,这时如果没有第二个p=a重新把指针指向数组首元素,那么第二个循环里指针指向的位置的值是不确定的
  • 2楼网友:刀戟声无边
  • 2021-02-13 17:49
*p是指针,指向a[i],*P+1就相当于a[i+1]。*p++=a[i++]他们表达的意思都一样。*p++指向后自指一位数。a[i++]指向后自加一位数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯