空指针
即指针变量指向内存中标号为0的空间,一般用来初始化指针变量。
int* p = NULL;
需要注意的是:
空指针指向的内存是不可访问的。即在使用时候首先要对其赋值。才可以使用。
int* p = NULL;
int k[] = { 1,2,3 };
int n = 1;
p = &n; //对其重新赋值,让它指向n的地址。
//p = k; 因为数组的名称本身就是首地址。所以不用写取址符
cout << *p << endl;
否则会报错误。原因是因为空指针指向的是编号为0的空间。而编号内存0-255为系统占用内存,是不允许用户访问的。
野指针
即指向非法内存空间的指针。对其操作会报错。在写程序的过程中一定要格外注意。
//野指针 指针指向非法的内存空间
int* a = (int* )0x1100;
//cout << *a << endl; 报错
原因是因为这个地址是随便写的,并不是我们申请的。所以会报错。