C++(4):const关键字
目录
一、基本用法
语法规则:
代码实例:
二、const 声明与普通变量声明的区别
示例对比:
三、const 的错误用法示例
1. 未初始化常量:
2. 尝试修改常量:
四、const 的高级用法
1. const 与指针:
2. const 与函数参数:
五、编程实践与总结
一、基本用法
语法规则:
const 数据类型 常量名 = 初始值;
-
作用:声明一个不可修改的常量,值在初始化后固定。
-
命名规范:常量名通常使用大写字母(如
MAX_SIZE
),以区分变量。
代码实例:
#include <iostream>
using namespace std;int main() {const int LENGTH = 10; // 声明整型常量const float PI = 3.14159; // 声明浮点常量const char SEPARATOR = '-';cout << "面积: " << LENGTH * LENGTH << endl;cout << "分隔符: " << SEPARATOR << endl;return 0;
}
二、const
声明与普通变量声明的区别
特性 | const 常量 | 普通变量 |
---|---|---|
初始化 | 必须声明时初始化 | 可声明时不初始化(先声明后赋值) |
可修改性 | 不可修改 | 可随时修改 |
内存分配 | 可能被编译器优化为直接替换字面值 | 分配实际内存 |
用途 | 保护固定值(如配置参数、数学常量) | 存储可变数据 |
示例对比:
int var = 5; // 普通变量,可修改
var = 10; // 合法const int CNST = 5; // 常量,必须初始化
// CNST = 10; // 非法!编译报错
三、const
的错误用法示例
1. 未初始化常量:
const int MAX; // 错误:常量必须初始化
MAX = 100; // 错误:不允许后续赋值
2. 尝试修改常量:
const int LENGTH = 10;
LENGTH = 20; // 错误:常量不可修改
四、const
的高级用法
1. const
与指针:
int value = 5;
const int* ptr1 = &value; // 指针指向的值不可变
int* const ptr2 = &value; // 指针本身不可变(指向固定地址)
const int* const ptr3 = &value; // 指针和值均不可变
2. const
与函数参数:
void printArray(const int arr[], int size){// arr[] 在函数内不可修改,防止误操作for (int i = 0; i < size; i++) {cout << arr[i] << " ";}
}
五、编程实践与总结
-
优势:
防止意外修改关键数据;明确标识程序中固定不变的值;编译器可能将const
常量直接替换为字面值,提升性能。-
适用场景:
数学常量(如PI
、GRAVITY
)、配置参数(如MAX_USERS
、TIMEOUT
)、函数参数或返回值中需保护的数据。
-
-
总结代码实例:
#include <iostream>
using namespace std;int main()
{const int MAX_SCORE = 100; // 常量声明int currentScore = 85; // 变量声明currentScore = 90; // 合法// MAX_SCORE = 95; // 非法!常量不可修改cout << "最高分: " << MAX_SCORE << endl;cout << "当前分: " << currentScore << endl;return 0;
}
输出:
最高分: 100
当前分: 90