比如,表达式 x pri1 y pri2 z,可能出现两种可能性
(x pri1 y )pri2 zx pri1 (y pri2 z)
如果运算符 pri1 的优先级比pri2 高,那么就是上面的第一种情况。
如果运算符 pri1 的优先级比pri2 低,那么就是上面的第二种情况。
如果优先级相同,那就要考虑结合方向。
结合方向是 「左到右」或者「右到左」。
例如,「= 」 的结合方向是 「右到左」。
所以
a = b = c 表达式的意义是 a =( b = c )
而「+」的结合方向是 「左到右」
所以
a + b + c 表达式的意义是 (a + b) + c
#C语言运算符优先级
#解析上面的表达式
x+=5==4
「+=」 的优先级是14「 ==」 的优先级是 7
所以上面表达式的意义是
x+=(5==4)
运行一下
#表达式的巧用
很多人不怎么用这种取巧的写法,我这两天看代码看到一个,截图给大家看看,非常简单,也是一种取巧的方法,挺有意思的。
一般情况下,我们还是会把 x = y 写在if 外面,直接写在if里面还是挺有意思的。
如果写成下面这样的话会输出什么呢?评论给出你的答案~
#include"stdio.h"
intmain(void){
intx=2;
inty=4;
intz=4;
if(x=y>=z){
printf("-----------01
");
}
return(0);
}
- END -点击卡片进入小程序,签到赢礼品??????