4.1.2 初始化指针变量

    声明指针变量时,C++并不会自动对其进行初始化,这时,指针变量的值是随机的,在内存中乱指一气。因此,通过指针间接访问所指的内存区域是十分危险的,因为它完全不知道自己在做些什么。通过取地址符(&)给指针变量赋值是个有效的手段,它可以在声明一个指针变量的同时完成其初始化。


    int num=1; int*pNum=#

    上述语句声明了一个指向int型变量的指针pNum,并用num在内存中的地址对其进行赋值。

    在对指针使用间接引用符前,一定要对其进行初始化,在声明的同时初始化或赋值,使其有一个确定的值,对于无处可指的指针变量,也要将其初始化为NULL即0,也就是空指针。

    C++编译器根据声明语句创建指针时,只分配用来存储地址的内存,不会分配用来存储指针所指数据的内存,为数据提供空间必须由程序员来完成,这是一个独立的步骤。上述代码中的“int num=1;”通知编译器开辟一块用以存储int型数据的内存区域,才能将num的地址赋给pNum。

    注意

    没有进行过初始化的指针操作会给程序带来灾难性的后果。