永发信息网

c语言,请问34 题怎么写

答案:3  悬赏:70  手机版
解决时间 2021-04-01 16:02
  • 提问者网友:欲劫无渡
  • 2021-04-01 01:08
c语言,请问34 题怎么写
最佳答案
  • 五星知识达人网友:刀戟声无边
  • 2021-04-01 01:44
int a[]={1,2,3,4,5,6},*p=a;
则指针p是指向a[0]的const指针
A选项,p++,*p是逗号表达式,从左到右求值,最后的结果是最右侧的表达式的值,p++执行后,p指向a[1],*p则是a[1]的值,当然是2
B选项与A选项一样,++p,*p是逗号表达式,从左到右求值,最后的结果是最右侧的表达式的值,++p执行后,p指向a[1],*p则是a[1]的值,当然是2
C选项,根据前面的结论,(*p)++其实是a[0]++,先取a[0]的值,再把a[0]的值加1,所以是1
D选项,根据前面的结论,++(*p)其实是++a[0],先把a[0]的值加1,再取a[0]的值,所以是2
所以不等于2的表达式是C选项,选择C追问谢谢
全部回答
  • 1楼网友:酒醒三更
  • 2021-04-01 03:24
答案C的值不为2追问谢谢
  • 2楼网友:蕴藏春秋
  • 2021-04-01 01:58
A和B 都是移动指针, p指向a[1] 然后*p就是a[1]也就是2
D是++(*p) = ++(a[0]) a[0]初始为1, 先自加 为2, 再取值,于是这个也是2
只有C 是(*p)++ 和D类似,不过这个是先取值 再自加。 所以值是原始的1追问谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯