我有一个问题:
为什么 C 中 if 语句中的 (a == b == c) 不起作用?
例如,我有这样的代码:
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");
为什么?
最佳答案
因为它是这样评估的:
if ((naxes1[0] == naxes2[0]) == naxes3[0])
// ^----------------------^---- Note
...该内部表达式的结果不是 naxes1[0]
或 naxes2[0]
中的值,它是一个 bool 值。
关于c - 为什么 C 中 if 语句中的 (a == b == c) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880467/