为什么C语言表达式a=(1<=x<=5),无论x取何值,a值恒为1?

如题所述

1<=x<=5 不是正确的 C语言表达式 或关系表达式。
a=(1<=x<=5) 没有意义。
--------------------------------
1<=x<=5 编译处理成:
( (1<=x) <=5 )
因为 <= 和 <= 优先级相同,从左到右计算。
真为1,假为0, 无论 (1<=x) 是真是假 都小于 5,所以
第二步 ..<=5 的结果是真,为1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-20
无论x为何值,1<=x的结果都是一个逻辑值。

逻辑假用0表示;逻辑真用非零表示,一般是-1或1;

所以,当然小于5了,

也即,<=5这个条件的计算结果恒为真,

所以,a值恒为1;
第2个回答  2010-02-20
因为
先比较1<=x
1<=x不是真就是假
即不是 1就是0
然后
(1<=x)<=5
而 不论1还是0都小于5
是真 即1
所以
a就是1啦
第3个回答  2010-02-19
1<=x<=5先计算 1<=x这个值不是1就是0 再拿1 或0 与5 比较 1<=5 0<=5
无论哪种情况都为1
c语言中的表达式与数学表达式不一样要实现数学表达式1<=x<=5
用C语言就该写成这样 (1<=x)&&(x<=5)
第4个回答  2020-05-17
1<=x<=5
不是正确的
C语言表达式
或关系表达式。
a=(1<=x<=5)
没有意义。
--------------------------------
1<=x<=5
编译处理成:
(
(1<=x)
<=5
)
因为
<=

<=
优先级相同,从左到右计算。
真为1,假为0,
无论
(1<=x)
是真是假
都小于
5,所以
第二步
..<=5
的结果是真,为1。
相似回答