1、指向常量的指针
- 指向常量的指针. 特点: 指针指向的内容不能修改,但可以把指针设置为指向其他内容.
const char* star{"Fatty"};
// 修改star元素的值
star[0] = ‘A’; // 编译报错
star = “West”; // 编译通过
例子2:
const int value {20};
const int* pvalue {&value};
*pvalue = 21; // 报错
- value是一个常量,不能修改value的值
- pvalue是一个指向常量的指针,可以用于存储value的值,也可以存储其他常量的地址.
2、常量指针
- 存储在指针中的地址不能修改,常量指针只能指向初始化时指定的地址.
- 但是地址的内容不是常量,可以修改.
int data {20};
int* const pdata {&data}
*pdata = 22; // 可以修改
3、指向常量的常量指针
- 存储在指针中的地址和指针指向的内容都被声明为常量,所以两者都不能修改
const float value {3.14f};
const float* const pvalue {&value};