我正在编写一些小的代码来了解指针的工作原理并遇到了一个问题。我在名为“main.c”的文件中有一个由“valid”指向的布尔值:
bool *valid;
Run Code Online (Sandbox Code Playgroud)
指针的地址被传递给名为“test.c”的第二个文件中的方法:
method(&valid);
Run Code Online (Sandbox Code Playgroud)
在“test.c”方法中,我将 valid 设置为 true:
*valid = true;
Run Code Online (Sandbox Code Playgroud)
在“main.c”中的方法调用之后,我在两个 if 语句中取消引用 valid 以查看它是真还是假:
if (*valid) {
printf("valid is true.\n");
}
if (!(*valid)) {
printf("valid is false.\n");
}
Run Code Online (Sandbox Code Playgroud)
两个语句都打印,但只有“有效为真”才应该打印。这里可能是什么问题?