在变量声明的时候,如果没有确切的地址可以赋值,可以为指针变量赋一个 NULL 值,赋为 NULL 值的指针被称为空指针。
NULL 指针是一个定义在标准库中的值为零的常量。请看下面的程序:
#include <iostream>
using namespace std;
int main ()
{
int *ptr = NULL;
cout << "ptr 的值是 " << ptr ;
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
ptr 的值是 0
当然,在大多数的操作系统中,程序不允许访问地址为0的,因为内存是操作系统保留的,所以内存地址为0有的特别的重要的意义,它表明该指针不指向一个可访问的的内存位置,如果指针包含空值,就假定它不指向任何东西
C++指针的算数运算
指针是一个数值表示的地址,所以您可以对指针进行算术运算,可以对指针进行四种不同算术运算
++,--,+,-
在程序里,我们喜欢使用指针来代替数组,因为变量指针可以递增,而数组不可以,因为数组是一个常量指针,下面这个程序是
递增变量指针,用来顺序访问数组每一个元素:
#include <iostream>
using namespace std;
const i