自增(自减)运算符的运算优先级

求代码执行结果

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语言)