下面程序段: int i=5 printf(%d%d%d,i,(++i)+(++i)+(i++),i ) 结果是8,7,5 我不是很明白

来源:百度知道 编辑:UC知道 时间:2024/05/06 03:03:35
下面程序段的执行结果是: int i=5 printf(%d%d%d,i,(++i)+(++i)+(i++),i ) 结果是8,7,5 我不是很明白 这是C语言程序设计的题目

顺序是从右向左
先计算第三个%d,i当然是5了

再计算(++i)+(++i)+(i++)是从左向右
注意:++i是先自加,再用i的数值,i++是先用i的数值,再自加

第1个括号数值是6,此时i==6;(先自加,再用i的数值)
第2个括号数值是7,此时i==7;(先自加,再用i的数值)
第3个括号数值是7,此时i==8;(先用i的数值,再自加)
三个的和是20

第1个%d,i当然是8了

你的结果好像不对

另:printf格式错误,应该是:printf("%d%d%d",i,(++i)+(++i)+(i++),i )

为了20分啊……

老兄,麻烦你先把正确的程序敲上,这段程序绝对不是这个结果
你敲错一个字符,结果就可能天差地远阿