指针(三)
丢失或不稳定指针
当程序对指针进行 delete 操作,从而释放他的内存。然后没有重新赋值就试图使用该指针时,就形成丢失指针。进行 delete 操作后,指针仍然指向旧的内存区,但编译器可以在那里存放任何其他数据。最坏的时候使用该指针可能导致程序崩溃。为安全起见,在删除指针后设置它为 null(0).
const 指针
const 可以在指针类型前,后,或者前后都用。例如:
// 指向常数的指针,程序不能改变它所指向的值
const int* pOne;
// 指向整数的常数指针。整数可变,但 pTwo 不能指向任何其他数据
int* const pTwo;
// 指向常整数的常数指针。不可以改变 pThree 指向的值,也不能改变 pThree 指向其他任何数据。
const int* const pThree;
const int* pOne;
// 指向整数的常数指针。整数可变,但 pTwo 不能指向任何其他数据
int* const pTwo;
// 指向常整数的常数指针。不可以改变 pThree 指向的值,也不能改变 pThree 指向其他任何数据。
const int* const pThree;
判断 const 语义的方法是,看 const 右边是类型还是变量。是类型则类型是常数,反之亦然。