C++ 中的常量
一、说明
常量和变量是相对的概念 —— 变量是 “能变化的量”,而常量就是一旦定义就固定不变、不能修改的值。
用生活里的例子类比,你就能秒懂为什么需要常量:本质是 “给固定不变的东西贴‘只读标签’,避免误改、保证数据一致性”,没有这玩意儿,关键的固定值容易被意外修改,导致程序出错。
例子 1:身份证号(固定唯一的核心数据)
【没有常量的情况】:如果把身份证号存在普通本子上(变量),不小心写错成别人的号码,去办业务就会出错;要是多人共用这个本子,还可能被其他人随意涂改。
【有常量的情况】:把身份证号印在身份证卡片上(常量),卡片上的号码无法修改,无论谁用、什么时候用,都是同一个正确的号码 —— 这就是常量的 “不可修改性”,保证核心固定数据不被篡改。
例子 2:教室的固定座位号(不可更改的标识)
例子 3:数学中的 π(固定不变的常量)
【有常量的情况】:定义一个常量 PI=3.1415926,所有计算都用这个常量,不管算多少个圆的面积,π 的值都不变,结果精准。
核心总结:
生活里的“不可修改的标签 固定标识”(身份证号、座位号、π),对应程序里的 “常量”—— 没有它们,固定不变的核心数据容易被误改,导致程序逻辑混乱、结果出错;
有了常量,能保证固定值的唯一性和不可修改性,让程序更稳定。
二、常量
1. 使用const关键字定义(推荐)
语法格式:
const 数据类型说明符 常量名 = 常量值;
const是关键字,必须写在最前面常量名命名规则和变量一致,通常全大写(约定俗成,方便区分)
必须定义时赋初值,不能先定义后赋值
2. 使用#define预处理指令定义
#define 常量名 常量值
没有数据类型,也没有分号结尾
本质是 “文本替换”,预处理阶段替换代码中所有对应常量名
3. 常量定义与使用的代码示例
示例 1:const 关键字定义常量
#include<iostream> using namespace std; int main(){ const int MAX_SCORE = 100; const double PI = 3.1415926; const char DEFAULT_CHAR = 'A'; const bool IS_OPEN = true; const string GREETING = "Hello World"; cout << "满分:" << MAX_SCORE << endl; cout << "圆周率:" << PI << endl; cout << "默认字符:" << DEFAULT_CHAR << endl; cout << "是否开启:" << IS_OPEN << endl; cout << "问候语:" << GREETING << endl; // MAX_SCORE = 90; 编译报错,const常量不能修改 // PI = 3.14; 编译报错 return 0; }输出结果:
满分:100 圆周率:3.14159 默认字符:A 是否开启:1 问候语:Hello World
示例 2:#define 定义常量
#include<iostream> using namespace std; #define MIN_AGE 18 #define TAX_RATE 0.08 #define WARNING "输入错误!" int main(){ cout << "最小年龄限制:" << MIN_AGE << endl; cout << "税率:" << TAX_RATE << endl; cout << "提示信息:" << WARNING << endl; // MIN_AGE = 20; 编译报错 return 0; }输出结果:
最小年龄限制:18 税率:0.08 提示信息:输入错误!
4. 常量使用的关键注意事项
常量必须先定义后使用,未定义直接使用会编译报错;
const常量有数据类型,编译器会做类型检查(更安全);
#define常量无类型,仅文本替换;
常量名通常全大写,方便区分变量;
关键字不能作为常量名。
5. 总结
常量是值固定不变的量,核心特点是 “不可修改”;
定义方式:const 类型 常量名=值(推荐)、#define 常量名值;
常量必须定义时赋初值,命名遵循变量规则,通常全大写。