int i=5,p;
p=(++i)+(++i)+(++i)
为什么p=22?
我总算成21
首先 按照运算顺序, + 都是从左往右开始计算,所以上面等价于
p = ((++i)+(++i)) + (++i)
// ((++i)+(++i)) 里 先进行 ++i 的求值, i 被递增了两次,即计算完 i = 7,(++i)= 7, 而 ((++i)+(++i)) = 7 + 7 = 14
// 下一步 计算 最后一个 (++i), 即 (++i) =8
// 最终p如下
p = 14 + 8 = 22
你也可以这样用程序去理解一下:
如有帮助,欢迎采纳哈!