未初始化的char *是空指针吗?

时间:2015-05-09 04:10:07

标签: c++

代码是:

char* c;
if(c!=NULL)
{
    cout << "c has an address the address is "<<c;
}
else
{
    cout << "c is null";
}

输出结果为:

  

c的地址为[完成时间为0.3秒]

如果c不为NULL,为什么c不会像#34; 0x401dee&#34;

这样的地址打印出来?

1 个答案:

答案 0 :(得分:3)

指针的问题是,它们在创建后经常有一个值,但它不是NULL指针(!)。但因为它的指针指向你记忆中的随机地址。这可能会导致很大的问题,这就是为什么你应该总是用

初始化一个指针
TYPE * NAME = NULL

所以它没有价值,所以它不能指向可能导致问题的东西,现在你可以用

进行测试
NAME == NULL

(当然你也可以用一个真实的值来初始化它,比如你的一个变量的地址)