关于运算顺序
#include<stdio.h>#define PRINT(int) printf(#int"=%d\n",int)
int main()
{
int x=1,y=1,z=1;
x+=y+=z;
PRINT(x<y?x++:y++);
}
请问大佬们为什么出来的结果是2啊?
我的理解是经过x+=y+=z后x=3 y=2 z=1;
因为++的运算先与?:所以最后输出y++为3
请问哪里有问题,感谢无私解答 int x=1,y=1,2=1;
x+=y+=z; //y=2, x=3
x<y? x++ : y++;//x<y 不成立,因此取 y++的值, ++在后面,先取值再++,因此结果是2 但是运算顺序不是++先于?:吗?
页:
[1]