如何检查变量是否已赋值

时间:2012-01-09 17:57:28

标签: c

这是我的代码段

main() {

    char *filename;

    if(1 > 2) {
      filename = "file.txt"
     }

     if(filename != NULL (also tried 0) {
       do something
     }
     return 0;
    }

我的问题是如何检查文件名var是否已赋值。我可以使用strcmp,但rvalue可以与“file.txt”不同

3 个答案:

答案 0 :(得分:9)

变化:

char *filename;

要:

char *filename = NULL;

然后您的NULL测试将起作用。

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

答案 1 :(得分:0)

您必须自己初始化指针,否则它没有保证的起始值。

char *filename = NULL;

答案 2 :(得分:0)

每当您声明(或定义)变量时,将它们初始化为0NULL(如果指针),然后对它们进行检查!

例如,

int i = 0;

.. 
if (!i) {

}

对于指针,

int *p = NULL;

..
if (!p) {

}