7. 常量指针
7.1. 概念
所谓的常量指针,即这个指针指向的一个常量的内存地址,常量指针中,不能对其指向的内存地址进行改变,但是指针指向的地址可以改变。
- 即:指针的指向可以改变,但是指向的内容不可改变。
7.2. 声明方式
const 变量类型*
7.3. 举例
const int a{ 1000 };
const int b{ 2000 };
const int* ptr{ &a };
//a是常量,不允许修改a的内容;
// *ptr = 500; //编译失败
// ptr 是变量,允许修改ptr的指向,可以指向a,也可以指向b
ptr = &b; // 编译成功
8. 指针常量
8.1. 概念
所谓的指针常量,即这个指针变量是一个常量,一旦初始化就不可以再指向其他内存地址,但是内存地址里的数据可以读写;
- 即:指针的指向不能改变,但是指向的内容可以改变。
8.2. 声明方式
变量类型* const
8.3. 举例
int a{ 1000 };
int b{ 2000 };
int* const ptr{ &a };
// ptr 是一个常量
//ptr = &b; //编译失败
*ptr = 99999; //正确
8. 指向常量的常量指针
8.1. 概念
所谓指向常量的常量指针,即这个指针变量是一个常量,一旦初始化就不可以再指向其他内存地址,因为其本身就是一个指向常量的指针,所以其指向的内存区域也不可以修改。
- 即:指针的指向不能改变,指向的内容也不可以改变。
8.2. 声明方式
const 变量类型* const
8.3. 举例
const int a{ 1000 };
const int b{ 2000 };
const int* const ptr{ &a };
// ptr = &b; //编译失败
// *ptr = 99999; // 编译失败