我们在编写C/C++程序时经常将指针与常量之间的关系混淆,在此,我总结如下:
1、常量指针
指向常量的指针变量
例如:const int * iPointer;
const修饰指针指向的内容
*iPointer不可修改,而iPointer可修改
如:const int Max = 3;
const int * iPointer = &Max;
(* iPointer) = 3;错误
iPointer = new int;正确
int K = 5;
iPointer = &K;正确
2、指针常量
指向变量的指针常量
例如:int * const iPointer;
const修饰指针
*iPointer可修改,而iPointer不可修改
如:int size = 3;
int * const iPointer = &size;
iPointer = new int;错误
(*iPointer)++;正确
3、常量指针常量
指向常量的指针常量
例如:const int * const iPointer;
第一个const修饰指针指向的内容,第二个const修饰指针
*iPointer不可修改,iPointer也不可修改
如:const int Max = 3;
const int * const iPointer = &Max;
iPointer = new int;错误
(*iPointer)++;错误