首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

表达式-1<=3<=-5值,请问

2012-02-11 
表达式-13-5值,请教表达式-1 3 -5值是:A.0B.1C.3D.表达式语法有错答案是A。表达式-1 3 -5,先判

表达式-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

热点排行