【发布时间】:2015-08-07 14:41:07
【问题描述】:
我有一个问题:
为什么 (a == b == c) 在 C 中的 if 语句中不起作用?
例如,我有这样的代码:
int naxes1[1] = {6};
int naxes2[1] = {6};
int naxes3[1] = {6};
if (naxes1[0] == naxes2[0] == naxes3[0])
printf("first doesnot work\n");
if (naxes1[0] == naxes2[0] && naxes1[0]== naxes3[0])
printf("second works\n");
为什么?
【问题讨论】:
-
只需更改编程语言。 AFAIK 在 JavaScript 中你可以使用操作符 ===.:)
-
@VladfromMoscow:问题不在于
===,而在于a == b == c。这在 JavaScript 中也不起作用(除了布尔值,如 C)。 -
@Quentin:这是我的观点,如果你有布尔值(并且你选择了正确的值),你就可以做到,但这不太可能是你真正想要的。
-
@T.J.Crowder 这是“作品”的原始定义,我猜 :p 请注意,如果有来自
bool的隐式转换,它实际上可以编译为多种类型。
标签: c if-statement