C语言自增自减运算符疑问

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

你也可以这样用程序去理解一下:

img


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!