永发信息网

C语言:如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为?好评立刻。

答案:2  悬赏:50  手机版
解决时间 2021-03-27 05:29
  • 提问者网友:战魂
  • 2021-03-26 13:40
C语言:如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为?好评立刻。
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-03-26 14:25
k=(++i)+(++i)+(++i)
++在变量前时优先级最高,因此优先于其他基本运算符执行,整个式子按从左到右依次解释执行
+是一个二元运算符,执行(++i)+(++i)时,由于括号优先级高于一切,式子从左到右计算,因此先计算第一个++i,此时i=4;再计算第二个++i,此时i=5;再计算+号,得5+5=10;下一步,计算10+(++i),先计算++i得6,再计算10+6=16,最后结果为16。
得出这个结果需要注意两点,第一个是++i和i=i+1的区别,++i在汇编中是INC指令自加,而i=i+1是ADD i,1操作,INC优先级高于ADD,因此执行顺序是先++再+号。第二个是C语言中运算式执行顺序是从左到右依次解释执行的
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-26 14:31
结果应该是18.
编译程序是这样处理的,对有含有++i的表达式,先进行i的自增运算,然后再计算其所在的表达式。
对于k=(++i)+(++i)+(++i)这个表达式,先计算其中的++运算,即连续进行三次的自增1,即i=6,然后再计算这个表达式,即6+6+6=18
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯