为什么以下以下程序打印“是”而不是“否”?
没有将变量初始化为2。
bool hello = 0;
int a = 1;
int b = 3;
int c = 4;
int d = 5;
if (a || b || c || d == 2) {
hello = 1;
}
if (hello == 1) {
printf("Yes");
}
if (hello == 0) {
printf("No");
}
return 0;
}
最佳答案
该声明
if (a || b || c || d == 2)
等效于:
if (a != 0 || b != 0 || c != 0 || d == 2)
相等比较不会自动分布在所有变量中。如果要这样做,则需要显式执行所有比较:
if (a == 2 || b == 2 || c ==2 || d == 2)
关于c - 为什么以下以下程序打印"is"而不是“否”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31634087/