这是我的代码片段
main() {
char *filename;
if(1 > 2) {
filename = "file.txt"
}
if(filename != NULL (also tried 0) {
do something
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何检查文件名var是否已赋值.我可以使用strcmp但是rvalue可以与"file.txt"不同
更改:
char *filename;
Run Code Online (Sandbox Code Playgroud)
至:
char *filename = NULL;
Run Code Online (Sandbox Code Playgroud)
那么你的NULL测试就可以了.
如果不初始化此指针,则其值未定义.这就是你的测试失败的原因.编译器假设您不关心它具有什么价值.