CC++ & Algorithm

别再“随手存数据”了:变量和常量,编程的“收纳哲学”

2026年7月25日关联知识点:变量与常量12 次阅读

你有没有遇到过这种情况?收拾房间时,把一堆东西随手扔进抽屉,然后关上——等到下次想找的时候,翻个底朝天也找不到。编程新手最容易犯的错,就是在内存里“随手存数据”。今天用数字10,明天用字符串“hello”,后天又换了个布尔值,程序跑着跑着就崩了,自己还一脸懵。

其实,编程里的存储逻辑,和整理房间一模一样。你需要给每样东西找个固定的“盒子”,再贴上清晰的标签。而变量和常量,就是这两种盒子——一个能随时换内容,一个锁死了永远不变。理解了它们,你才算真正拿到了操作数据的钥匙。

变量:带标签的可折叠储物盒

想象一下,你有一个储物盒,盒子上贴着标签“age”。你往里面放了个数字10。过一会儿,你又打开盒子,把10换成11。盒子的内容可以随意改动,这就是变量。在C++里,你得先“声明”这个盒子——告诉电脑盒子叫什么、能装什么类型的东西:

int age = 10;   // 声明并初始化
age = 11;       // 赋值,修改内容

第一行是“声明并初始化”,第二行是“赋值”。如果你只声明不初始化,就像放了个空盒子进去,里面可能残留着以前别人留下的垃圾数据。这在C++里很危险,所以最好养成“声明时顺手初始化”的习惯。

数据类型决定了盒子能装什么

你不能往“int”盒子里塞一段文字,就像不能用装书的盒子去装水。表1列了常用的几种:

类型能装什么场景例子
int整数(无小数)年龄、班级人数、金币数
float小数身高1.65米、考试成绩92.5
char单个字符(单引号)性别'M'、等级'A'
bool逻辑值(true/false)今天是否下雨

命名规则:别给盒子起怪名字

  • 只能使用字母、数字和下划线,不能以数字开头。
  • 不能和C++关键字重名(比如 intreturn)。
  • 区分大小写,ageAge 是两个不同的盒子。

这个规则特别容易踩坑。比如我常见新手写 int 2num = 10;——显然不行。还有新手把变量名写成 int,直接冲突。记住一条金律:见名知意,用 studentCount 而不是 s,半年后你自己看代码也能秒懂。

常量:锁死的铁箱子

常量就像一个带锁的铁箱子。你把东西放进去,箱子自动锁上,再也打不开。C++用 const 关键字声明:

const int DAYS_IN_WEEK = 7;   // 一周七天,永远不会变
// DAYS_IN_WEEK = 8;          // 报错,常量不能修改

常量的好处很多。最直观的是防止手滑——比如圆周率π,写成变量的话,万一不小心改成3,整个物理计算就废了。另外,维护更方便:如果你在程序里几十处写了3.14159,某天需要更高精度,就得改几十个地方;如果定义一个const float PI = 3.14159;,只改一行就够了。

生活中哪些是常量?一年12个月,一小时60分钟,你的生日(年月日不变)。它们不应该被随意修改。

关联题目:看看你是不是真懂了

在C++中,以下哪条语句正确地声明了一个整型变量并初始化为10?

这道题其实在考察变量声明的语法。正确写法是 int num = 10;int num(10);。错误选项可能包括:只声明不初始化(int num;)、用赋值语句代替声明(num = 10; 但没声明)、关键字拼错等。

解题思路:先看有没有指定数据类型(int),再看有没有变量名,最后看等号右边的初始值是否为整数。注意 int num = 10; 是最标准的形式。另外,常量声明要用 const int NUM = 10;,但题目问的是变量,所以不能选带 const 的。

在C++中,使用const关键字定义的常量在程序运行过程中可以被修改。

这道题考的是常量的本质——一旦定义,绝不能修改。如果你试着给常量赋值,编译器会报错:“expression must be a modifiable lvalue”。所以这句话是错误的

实战一下:真的用起来

来看一个真实的小程序。计算圆的面积和周长,你就能体会到变量和常量的协同:

const float PI = 3.14159;   // 常量,圆周率不变
float radius = 5.0;         // 变量,半径可以改
float area = PI * radius * radius;  // 计算面积

如果你尝试 PI = 3.14;,编译器直接报错。而 radius 可以随意改成10.0、3.0,甚至让用户输入。这就是变量和常量的分工:常量保护不该变的值,变量承载动态数据。

新手最常犯的4个错(我见的太多)

  1. 忘记声明直接使用age = 10; → 必须先 int age;
  2. 给常量赋值DAYS = 8; → 常量不允许。
  3. 大小写搞错myAgemyage 是两个名字 → 编译器不会帮你匹配。
  4. 未初始化就读取int number; cout << number; → 可能输出一个随机的垃圾值。

最后这个尤其坑。C++不会自动清零局部变量,你拿到的可能是内存里残留的乱码。所以声明即初始化永远是良习惯。

接下来还能学什么?

变量和常量的基础打牢后,你可以往前走:

  • 输入输出:用 cin 让程序交互,比如用户输入半径。
  • 运算符:加减乘除、求余,让变量动起来。
  • 条件判断if 语句,比如判断金币是否够买装备。
  • 数据类型进阶double(更高精度小数)、string(字符串)。

记住一句话:变量是程序的“活水”,常量是程序的“锚点”。没有变量,程序就是一潭死水;没有常量,程序就像风中浮萍,随时可能被人手滑改崩。


关于作者

我是赵老师,持有 NOI 信息学奥赛教练证书,拥有 15 年以上的软件开发经验,从事信息学少儿编程教学已有 8 年时间。

这些年累计帮助 多名 学生通过编程特长升入自己心仪的目标学校。

如果你在编程学习上有任何疑问,欢迎联系我:18620372957(微信同号)

这篇文章对你有帮助吗?

有用 100%没用 0%

想系统学习这个知识点?查看完整知识点 →