问题
常量指针和指针常量有什么区别?
const的优点
在C++中,关键字const用来只读一个变量或对象,它有以下几个优点:
- 便于类型检查,如函数的函数 func(const int a) 中a的值不允许变,这样便于保护实参。
- 功能类似于宏定义,方便参数的修改和调整。如 const int max = 100;
- 节省空间,如果再定义a = max,b=max…等就不用在为max分配空间了,而用宏定义的话就一直进行宏替换并为变量分配空间
- 为函数重载提供参考,即可以添加const进行重载。
常量指针和指针常量的区别
首先要区分常量指针和指针常量分别是什么,这里有一种很好的记忆方法:
指针(*)和常量(const)谁在前先读谁 ; 象征着地址,const象征着内容;谁在前面谁就不允许改变。*
int a = 1;
int b = 2;
int c = 3;
int const *p1 = &b; // const在前,p1为常量指针
int *const p2 = &c; // * 在前,p2为指针常量
//注意:允许将非const对象的地址赋给指向const对象的指针,所以第4行代码是正确的
</