我注意到在C中,我的布尔变量以某种我不理解的方式被改变了.
#include <stdio.h>
#include <stdbool.h>
int main(void) {
bool x, y;
printf("x: ");
scanf("%d", &x);
printf("x is %d\n", x);
printf("y: ");
scanf("%d", &y);
printf("x is %d\n", x);
printf("y is %d\n", y);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我输入1for的x值和y(1在此示例中)的任何值:
Run Code Online (Sandbox Code Playgroud)x: 1 x is 1 y: 1 x is 0 y is 1
最后,y输出正确的原始值,但x神奇地改变0之间!
这不是一个问题,当用于输入x是0因为对于两个输出x和y如预期的是其各自的原始值.
请解释发生了什么!