求代码执行结果
int main() {
int x = 20, y = 35;
x = y++ + x++;
y = ++y + ++x;
printf("%d%d", x, y);
}
答案是:5794
测试他的计算顺序:
- 去掉第一个x后面的自增运算符
- 在第3行设置断点
int main() {
int x=20,y=35;
x=y++ + x;
y= ++y + ++x;
printf("%d%d",x,y);
return 0;
}
执行完第三行后,结果为

说明在x=y++ + x;这里执行的是x = x+y, y=y+1两个步骤
所以之前的程序x = y++ + x++;计算的过程应该是 x = x+y,y=y+1, x=x+1
总结:自增(或自减)运算符在计算时,如果是后缀式自增(或自减),即 i++形式的,那么会在结束当前语句的执行后,进行自增(或自减)运算。
本文深入探讨了C++中自增运算符的工作原理,特别是后缀自增运算符的行为。通过具体代码示例,解释了自增运算如何影响变量的值,并在计算过程中触发自增操作的时机。
运算符的运算优先级&spm=1001.2101.3001.5002&articleId=107322074&d=1&t=3&u=e57f5890f6264260aea4ae64c5603329)
1901

被折叠的 条评论
为什么被折叠?



