C语言代码问题?

这两个代码为啥结果不同,那里出错了吗?... 这两个代码为啥结果不同,那里出错了吗? 展开
 我来答
端木青音
2020-03-09 · TA获得超过486个赞
知道小有建树答主
回答量:560
采纳率:89%
帮助的人:244万
展开全部
运行结果:30 20
原因:

程序一:虽然++a在不同位置,累加了5次,但是不论是哪个位置的++a,都使得a发生了变化。换句话讲,他们是一体的,第一个++a,a变为了2,这里是所有的a都变成了2,同样,第二个++a,也使得a+1,从而变为3,即所有a都变成了3,所以经过五次之后,a变为了6,那么b = (++a) + (++a) + (++a) + (++a) + (++a)就相当于b=6*5=30.
程序二:与上道理相似,每次++a都使得a+1,但是不同的是b=++a后,a=2,b=2,b的值就不再发生变化,再执行c=++a后,a=3,c=3,c的值亦不再变化,所以本程序就相当于2+3+4+5+6=20.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式