表达式-1<=3<=-5值,请教
表达式-1 <=3 <=-5值是:
A.0 B.1
C.3 D.表达式语法有错
答案是A。表达式-1 <=3 <=-5,先判断-1 <=3为真,即其值为1,再判断1 <=-5为加,所以最后结果为0。
问题是:表达式不是遵循从右到左的顺序吗?这怎么从左到右了?
[解决办法]
有些符号是左结合的 比如() [] -> . + - * / % < < > > < > <= > = == != & ^ | && || ,
另一些是从右向左的 比如! ~ ++ -- ?: 赋值运算等
[解决办法]
运算符的结合性(或称作关联性)
在一个复杂的表达式中,常常有许多运算符和变量,这时就要判断优先级和结合性这二个因素。
例:-5+7; 这样的一个表达式用结合性来判断,因为运算符 '- '和 '+ '相对于运算的数来说是‘左’结合的,所以就有 '-5 '和 '+7 '所以运算的结果为 2。
通过这个例子要知道什么是“左结合性”和“右结合性”
左结合性--变量(或常量)与左边的运算符结合
右结合性--变量(或常量)与右边的运算符结合
运算符的优先级和结合性表
优先级 运算符(高 ------→低) 结合率 运算符类型
高 ( ) [ ] -> . 从左至右 双目运算符
! ~ ++ -- (类型) sizeof + - * & 从右至左 单目运算符
* / % 从左至右 双目运算符
+ - 从左至右 双目运算符
< < > > 从左至右 双目运算符
< <= > > = 从左至右 双目运算符
== != 从左至右 双目运算符
& 从左至右 双目运算符
^ 从左至右 双目运算符
| 从左至右 双目运算符
&& 从左至右 双目运算符
|| 从左至右 双目运算符
?: 从右至左 三目运算符
低 = += -= *= /= %= &= ^= |= < <= > > = 从左至右 双目运算符
高 -------------→ 低
从表中可以看出一个规律,凡是单目运算符都是“右结合”的,凡是双目运算符都是“左结合”的。其中有一个?:运算符是三目运算符是右结合的,记住了这个规律,运算符的结合性也就掌握了。
[解决办法]
http://www.qstu.com/IT/HTML/15261.html