如何检查变量是否已赋值

sum*_*erc -2 c

这是我的代码片段

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"不同

Dre*_*ann 9

更改:

char *filename;
Run Code Online (Sandbox Code Playgroud)

至:

char *filename = NULL;
Run Code Online (Sandbox Code Playgroud)

那么你的NULL测试就可以了.

如果不初始化此指针,则其值未定义.这就是你的测试失败的原因.编译器假设您不关心它具有什么价值.