表达式 6 =\= 6 == 6 在 C++ 中会导致编译错误,因为该表达式涉及到了连续的相等比较操作符。在 C++ 中,不能直接进行多个连续的比较操作。
要正确比较三个数的相等关系,应该使用逻辑与运算符(&&)将它们连接起来,例如:(6 =\= 6) && (6 == 6)。这样才能对每个比较操作进行逐个求值。
现在,让我们来看看为什么 6 =\= 6 == 6 的结果被解释为 0。
在 C++ 中,连续的相等比较操作符会按照从左到右的顺序进行求值。首先,执行 6 =\= 6 的比较,这个比较结果为真(true),因为 6 确实等于 6。然后,将该结果(true)与右侧的 6 进行比较,即执行 true == 6。
在 C++ 中,布尔值 true 被隐式转换为整数值 1,而布尔值 false 被隐式转换为整数值 0。因此,上述比较实际上是 1 == 6。
由于 1 不等于 6,因此整个表达式的结果为假(false),而非零值 0 被解释为假值。
需要注意的是,由于在 C++ 中连续的相等比较操作是不允许的,因此编译器可能会报告语法错误。如果需要比较多个值的相等关系,应该使用逻辑与运算符将它们连接起来。
此外,在 C++ 中,a=b=c=2; 却是一个合法的表达式,被称为连续赋值表达式。它的执行顺序是从右往左进行的。在这个表达式中,整数值 2 被赋值给变量 c,然后 c 的值被赋值给变量 b,最后 b 的值被赋值给变量 a。这种连续赋值的行为在 C++ 中是有效的,并且每个变量都会被赋予相同的值。
1688

被折叠的 条评论
为什么被折叠?



