X=(X=1+2,X*2)的运算顺序,跪拜!

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:36:53
以前我问了个问题 如:
int x=10;
int y=x++;
printf("%d,%d\n",(x++,y),y++);

执行后

printf语句从右往左计算。y++ 比(x++,y)先运算.

逗号表达式,返回右值。。(x++,y)返回y值

现在这X=(X=1+2,X*2)的运算顺序怎么试先算X=1+2了?

printf是个函数,函数入栈是从右到左。
你这里的X=(X=1+2,X*2),()只是个普通的运算符,不是函数的那个()了。

这里就是所谓的逗号运算符,先计算X=1+2,再计算X*2,整个表达式的结果是后一部分。