摘录自 C++ Primer Plus
指针的危险
一定要在对指针应用解除引用操作符(*)之前,将指针初始化为一个确定的、适当的地址。这是关于是使用指针的金科玉律。
如下代码:
long * fellow; //create a pointer-to-long
*fellow = 223323; //place a value in never-never land
fellow确实是一个指针,但它指向哪里呢?上述代码没有将地址赋给fellow。那么223323将会被放在哪里呢?我们不知道。由于fellow 没有被初始化,它可能有任何值。不管是什么,程序都将把它解释为储存223323的地址。如果fellow的值碰巧为1200,计算机将把数据放在地址1200上,即使这恰巧是程序代码的地址。fellow指向的地方很可能并不是要存储223323的地方。这种错误可能会导致一些最隐匿、最难以跟踪的bug。