优先级应该先算后面小括号里的,怎么x的值还是1呢

来源:百度知道 编辑:UC知道 时间:2024/05/14 09:04:58
int x=1;
1+2||(x=4-1);
printf("x=%d\n",x);
优先级怎么解释啊,表达式先按运算符优先级来算的
首先谢谢各位的回答!另外补充:
对表达式求值时,先按运算符的优先级由高到低的次序执行,如“先乘除后加减”。当运算符的优先级相同时,运算方向由结合性决定。
小括号优先级最高,为什么不先算后面小括号里的呢?

1+2||(x=4-1);是一个或运算,编译器在执行1+2时就确定了这个式子的值为真,就不在计算后面括号内的式子了,所以x的值没有变。

同意上面的回答!!
他没有进行赋值!只是判断了1+2||(x=4-1)是否为真!
所以x为1!

只是判断了1+2||(x=4-1)是否为真!
所以x为1!