永发信息网

为什么这个C语言题目只有c不等于2,这几个表示有区别吗?

答案:1  悬赏:80  手机版
解决时间 2021-11-18 08:30
  • 提问者网友:雪舞兮
  • 2021-11-17 15:05
为什么这个C语言题目只有c不等于2,这几个表示有区别吗?
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-11-17 15:51
无论是++p还是p++后p都指向2了,*p就是2。
(*p)++是先*得到1,然后是后++,这时候a里面的1变成2了,但是返回值还是加之前的,是1。
++(*p),是前++,a里面的1加1变成2,返回值是加之后的,是2。追问那第一个加了1,不应该也返回1吗,还有是不是*p=a,p的开始值就为1,为什么?追答第一个返回加了之后的呀
p就指向第一个元素了a就是第一个元素的地址呀 给了p p就指向第一个追问我还是有点不懂,为什么b中加了1后返回值又少了1追答B选项没少1啊,加1后不就是返回2吗追问我说错了是c为什么返回值算前面的追答你分不清 前++ 和 后++ 呀?语法规定就是那么着的。追问所以我就是这疑惑 为啥,ac都是p++一个行一个不行追答A和C根本不一样呀。
A:p++,*p;
先p++,p指向2了,然后*p就是2,返回值就是2。
C:(*p)++
p开始指向1,*p就是1,因为是后++,虽然加了变成2,但是返回的是加1之前的1。
比如
a=1,b=a++;
这时候a加1变成2了,但是赋值给b的还是1。追问麻烦你打这么多了,可不可以这么理解,a中加厚有个,之后输出+1,但是c中虽然加了但是和a++一样,先代原值后再加1追答我看不懂你说的什么啊
什么a中加厚有个,之后输出+1,追问a中有个逗号,所以先加,然后这个值给了*p
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯