为什么以下程序打印"是"而不是"否"?
没有变量初始化为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;
}
Run Code Online (Sandbox Code Playgroud)
该声明
if (a || b || c || d == 2)
Run Code Online (Sandbox Code Playgroud)
相当于:
if (a != 0 || b != 0 || c != 0 || d == 2)
Run Code Online (Sandbox Code Playgroud)
相等比较不会自动分布在所有变量上.如果要这样做,则需要明确执行所有比较:
if (a == 2 || b == 2 || c ==2 || d == 2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |