为什么在C语言里不能直接写2<X<3,而要写(X>2)&&(X<3)

来源:百度知道 编辑:UC知道 时间:2024/09/20 11:50:23

这个应该从编译原理的角度来解释,在编译中,>和<两个符号是作为关系运算符出现的,即他们反应出两个元素之间的关系,其结果为一个布尔型变量。当然,C语言是自由的,所以他在这个问题上表现的自由而非严禁。所以,不管关系运算符的运算顺序,如果存在2<x<3这种写法,将会导致一个布尔型同一个整数型进行关系运算,当然,这是毫无意义的,因为他们是不同的类型,一个字符串和一个数字如何比较大小呢?很显然即便存在某种比较方式,也是编程者赋予它的意义。所以,不存在2<x<3这种写法。

c语言本身的目标是简单,所以所有的定义和实现都很基础,要实现什么具体功能只能靠程序员灵活运用

在C语言中这样写是不会出错的…2<x<3就相当于(2<x)<3,无论x是什么值,2<x只可能是0或1(即表达式为假或真),所以2<x<3始终为真,不是我们想要的结果…所以楼上的说不能这么用不很正确,但要用也不是不能的

这个没有什么意义

如果这样写那么将先将 2<x 进行判断 结果要么为1要么为0 然后再与<3进行判断

因为这是规则!