C/C++中NULL的理解

先不说这么多,上个程序再说:(编译器:vs2015)

#include
using namespace std;
int main()
{
int t = NULL;
char k[10];
int *p = NULL;
cout << t<cout << k << endl;//结果:烫烫烫烫烫烫烫烫烫烫
cout << p << endl;//结果:00000000
return 0;
}

看完程序也基本了解了:在一些编译系统中,在iostream头文件中已定义了符号常量NULL:#define NULL 0

int *p=NULL;就是使p指向地址为0的单元,即指针不指向任何有效的单元

请注意:p的值等于NULL和p未被赋值是两个不同的概念。前者是有值的(值为0),不指向任何变量,后者虽未对p赋值但并不等于p无值,只是它的值是一个无法预料的值(vs2015上对未初始化的变量进行输入会报错,但是为初始化数组能够正常输出),也就是p可能指向某一个未指定的单元,这种情况很危险,因此,在引用指针变量之前应对它赋值。

你可能感兴趣的:(C/C++)