第1个回答 2006-02-15
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
表达式 ┃优先级
————————————————————————————╂————
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
————————————————————————————┃ ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
————————————————————————————┃ │
*(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │
————————————————————————————┃ │
*(乘) /(除) %(取模) ┃ │
————————————————————————————┃ │
+(加) -(减) ┃ │
————————————————————————————┃ │
<<(位左移) >>(位右移) ┃ │
————————————————————————————┃ │
<(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │
————————————————————————————┃ │
==(等于) !=(不等于) ┃ │
————————————————————————————┃ │
&(位与) ┃ │
————————————————————————————┃ │
^(位异或) ┃ │
————————————————————————————┃ │
|(位或) ┃ │
————————————————————————————┃ │
&&(逻辑与) ┃ │
————————————————————————————┃ │
||(逻辑或) ┃ │
————————————————————————————┃ │
?:(?表达式) ┃ │
————————————————————————————┃ │
= += -=(联合操作) ┃ │
————————————————————————————┃ │
,(逗号运算符) ┃ 最低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第2个回答 2006-02-15
其中优先级最高的为(),其次为!,再其次为/,再其次为+-,最后为&&,所以先算()内的即:
!2+2-1&&4+2/2
再然后,运算优先级较高的!运算 !2=0
即:0+2-1&&4+2/2
再然后,运算优先较高的/运算 2/2=1
即:0+2-1&&4+1
再接下来是+-运算,即
1&&5
1和5都是真值,所以相与的结果为1
第3个回答 2006-02-15
算数运算优先于逻辑运算,按照这个顺序,先计算x-y为2,+z-1为3,非3为0,0与任何值都为0,因此与运算的后半部分不用计算,最终结果为0
第4个回答 2006-02-15
已知x = 6 , y = 4 , c = 2,则表达式 ! ( x - y ) + z - 1 && y + z / 2
z 为何值????
如果为 2
则
先算 ( x + y )
为 ( 6 - 4 ) 为2
再算 ! ( x + y ) 为 ! 2 为 0
再计算 0 + z - 1 为 1
在计算 逻辑于符号后面的式子 y + z / 2
先乘除再加减 z / 2 为 0
y + 0 为 4
再算逻辑与 1 && 4
为 1