/*
* const 修饰指针
*
* 1 常量指针
* 2 指针常量
* 3 const既修饰指针,又修饰常量
*
*/
#include <iostream>
int main() {
int a = 10;
int b = 10;
//常量指针:
//特点:指针的指向可以修改,但是指针指向的值不可以改
const int *p1 = &a;
// *p1 = 20;//错误
p1 = &b;//正确
//指针常量
//特点:指针的指向不可以改,指针指向的值可以改
int * const p2 = &a;
*p2 = 20;//正确
// p2 = &b;//错误
//const既修饰指针,又修饰常量
//指针的指向和指针指向的值都不可以改
const int * const p3 = &a;
// *p3 = 20;//错误
// p3 = &b;//错误
}
另外,在函数参数传递时,一般不使用值传递(会额外申请内存),当使用地址传递或引用传递时,可以加上const修饰符防止对不想要改变的变量的误操作。