1樓:仍易闕鈴
c語言的優先順序(從上到下依次遞減):
醋-初等,4個:()
[]->
指向結構體成員
.結構體成員
壇-單目,9個:!~
++--
-負號(型別)
*指標&取地址
sizeof長度
酸-算術,5個:*/
%+-減味-位移,2個:
<<>>灌-關係,6個:
<<=>>===等於
!=不等於
味-位邏,3個:
&按位與
^按位異或
|按位或
落-邏輯,2個:
&&邏輯與
||邏輯或
跳-條件,1個,三目:?:
福-賦值,11個:=+=
-=*=
/=%=
>>=<<=&=^=
|=豆-逗號,1個:
,你可以發現算術運算子高於邏輯運算子,而非!高於算術運算子。
所以該表示式可以等於((!(x+y))+z-1)&&(y+z/2)現在就一目瞭然了。
x+y=7,那麼!7=0(邏輯運算都是規定0為假,除了0外都為真。那麼(!真)=假=0)
所以&&左邊的=0+z-1=0+5-1=4&&右邊的=4+5/2=6.5
因為是int型,所以取整它等於6
!(x+y)+z-1&&y+z/2它等於4&&6,由於4和6都是真所以4&&6等於1
該表示式的值為1
2樓:匡醉卉顧梓
1!(x+y)+z-1
先計算x+y,再!(x+y),然後結果)+z-1,結果是0+5-1=4
所以要計算&&之後的表示式
y+z/2=6
4&&6
=1附:c語言的操作符共有15個優先順序,如下:
operators
associativity()
->.left
toright!~
++--+-
*(type)
sizeof
right
toleft*/
%left
toright+-
left
toright
<<>>left
toright
<<=>>=left
toright
==!=
left
toright
&left
toright
^left
toright
|left
toright
&&left
toright
||left
toright
?:right
toleft=+=
-=*=
/=%=
&=^=
|=<<=
>>=right
toleft
,left
toright
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
3樓:尋絲微孛彩
先x+y
再求非然後z/2
然後計算&&兩邊的表示式
最後執行&&運算
C語言 已有定義int x 3,y 4,z 5則表示式
答案是1。涉及到的運算子 運算子優先順序為 運算過程 x 3,y 4,z 5 x y z 1 y z 2 3 4 5 1 4 5 2 所以表示式計算步驟為 3 4 5 1 4 5 2 7 5 1 4 5 2 7為 0 0 5 1 4 5 2 5 2 整數除整數得整數 2 0 5 1 4 2 4 6 ...
c語言 已有定義int x 3,y 4,z 5則表示式
答案是1。涉及到的運算子 運算子優先順序為 運算過程 x 3,y 4,z 5 x y z 1 y z 2 3 4 5 1 4 5 2 所以表示式計算步驟為 3 4 5 1 4 5 2 7 5 1 4 5 2 7為 0 0 5 1 4 5 2 5 2 整數除整數得整數 2 0 5 1 4 2 4 6 ...
定義 int x 1,y 2,z執行z xy xy表示式後,x,y,z的值是
先明白x y z 這個表示式結果只有可能2個值,0和1,運算子有個特 回點,如果第一個表答達式結果是真,則後面的表示式將不執行,因為x 5,結果非零,所以這裡只執行了一個x 最後x 6,y 6,z 8 為三元運算子,例如 a?b c 表示如果a為真,則表示式值為b,如果a為假,則表示式值為c 先算x...