变量与常量
简单107变量与常量:给数据起个名字
在编程的世界里,我们经常要保存一些数据,比如你的年龄、身高,或者游戏里的分数。这些数据需要放在电脑的“内存”里,而变量和常量就是帮我们给这些数据取名字的“小工具”。
你可以把电脑内存想象成一个巨大的储物柜,里面有很多个小格子。变量就像贴了标签的储物盒,你可以随时往里面放东西、换东西;常量则像带锁的铁箱子,第一次放进去后就再也打不开了。学会使用变量和常量,你就能在程序中存储和操作数据啦!
1. 变量——可以随时更改的储物盒
1.1 什么是变量?
变量就像一个可以随意打开和关闭的储物盒。你可以在盒子上贴一个标签,比如 age(年龄),然后往里面放一个数字,比如 10。过一会儿,你还可以打开盒子,把里面的数字换成 11。盒子里面的东西可以变,这就叫变量。
在C++中,使用变量之前要先“声明”,告诉电脑这个盒子叫什么名字、能装什么东西。比如:
int age = 10; // 声明一个叫age的变量,里面放整数10
age = 11; // 把age里的值改成11
第一行叫“声明并初始化”——既告诉电脑我要一个叫 age 的盒子,又放了数字 10 进去。第二行是“赋值”——再打开盒子,把里面的内容换成 11。
1.2 变量需要先“说明”再使用
电脑不认识乱起名字的盒子。声明变量时要指定数据类型,告诉盒子只能装哪种东西:
| 数据类型 | 能装什么 | 生活中的例子 |
|---|---|---|
int | 整数(没有小数点) | 年龄、班级人数、游戏金币数 |
float | 小数(有小数点) | 身高(1.65米)、期末考试的分数(92.5分) |
char | 单个字符(用单引号括起来) | 性别 'M'、成绩等级 'A' |
bool | 逻辑值(真或假) | 今天是否下雨(true/false) |
例如:
int score = 100; // 游戏得分,整数
float height = 1.65; // 身高,带小数
char grade = 'A'; // 成绩等级,单个字符
bool isHappy = true; // 今天开心不?true表示真
1.3 变量的命名规则
给盒子贴标签也要遵守规矩,不然电脑会“看不懂”:
- 只能使用字母、数字和下划线
_,例如myScore、num_1都可以。 - 不能以数字开头,比如
2age是错的,age2是对的。 - 不能和C++的关键字重名,比如
int、return、if这些词已经被电脑占用了。 - 区分大小写:
age和Age是两个不同的盒子。
? 小提醒:命名最好“见名知义”,比如用
studentCount而不是s,别人(包括以后的你自己)一看就知道是学生人数。
2. 常量——锁住数据的铁箱子
2.1 什么是常量?
常量就像一个带锁的铁箱子。你第一次放进去的东西,箱子就自动锁住,以后再也打不开了。所以常量的值一旦确定,就不能再修改。
在C++中,用 const 关键字来表示常量。例如:
const int DAYS_IN_WEEK = 7; // 一周有7天,永远不会变
// DAYS_IN_WEEK = 8; // 这行会报错,因为常量不能改
常量通常用全大写字母命名,多个单词之间用下划线连接,这样一眼就能看出它是常量。当然,这不是强制要求,但大家都这么写,方便阅读。
2.2 常量有什么用?
- 防止意外修改:比如圆周率 π,如果写成变量,万一不小心改成了 3,整个程序就错了。用常量,编译器会帮你拦住错误。
- 让代码更容易维护:如果你在程序里到处写了数字 3.14159,有一天发现需要更高精度,要改十几个地方。但如果定义了一个常量
PI,你只需要改这一处。
生活中哪些东西是常量?数学上的圆周率、一年有12个月、一小时有60分钟、你的生日(年月日不变)。
3. 为什么要有常量和变量?
- 变量用来存放会变化的数据,比如玩家的生命值、得分、你的零花钱总数(每月可能有变化)。
- 常量用来存放固定不变的数据,比如一包薯片的价格(假设商店不涨价)、太阳从东方升起。
一个简单的例子:你每天有 10 元零花钱(常量),今天花了 3 元买了一支笔,剩余的钱(变量)是多少?
const int POCKET_MONEY = 10; // 每天固定10元零花钱,常量
int spend = 3; // 今天花掉3元,变量
int left = POCKET_MONEY - spend; // 剩余7元,也是变量
4. 新手最容易犯的错误
❌ 错误1:忘记声明变量直接使用
age = 10; // 错误!没有先声明 int age;
正确做法:先声明再赋值。
❌ 错误2:给常量赋值
const int DAYS = 7;
DAYS = 8; // 错误!常量不能修改
编译器会提示错误,就像你想撬开锁着的铁箱子一样。
❌ 错误3:变量名搞错大小写
int myAge = 12;
myage = 13; // 错误!myage 和 myAge 是两个不同的名字
C++对大小写很敏感,myAge 和 myage 完全不一样。
❌ 错误4:变量未初始化就使用
int number; // 只声明,没放任何东西
cout << number; // 可能输出一个奇怪的大数字,这是因为盒子里还残留着别人用过的垃圾数据
好习惯:声明变量时就给它一个初始值,比如 int number = 0;。
5. 完整可运行示例
下面是一个完整的C++程序,它用到了变量和常量,计算一个圆的面积和周长。你可以复制到编译器里运行试试。
#include <iostream> // 输入输出头文件
using namespace std;
int main() {
// 常量:圆周率,3.1415926,永远不变
const float PI = 3.14159;
// 变量:圆的半径(可以修改)
float radius = 5.0; // 半径设为5厘米
float area; // 声明变量area,用来装面积
float circumference; // 声明变量circumference,用来装周长
// 计算:面积 = π * 半径的平方,周长 = 2 * π * 半径
area = PI * radius * radius;
circumference = 2 * PI * radius;
// 输出结果
cout << "半径: " << radius << " 厘米" << endl;
cout << "面积: " << area << " 平方厘米" << endl;
cout << "周长: " << circumference << " 厘米" << endl;
// 试试修改半径
radius = 10.0; // 换成10厘米
area = PI * radius * radius; // 重新计算面积
cout << "改半径后 面积: " << area << " 平方厘米" << endl;
return 0;
}
运行结果:
半径: 5 厘米
面积: 78.5397 平方厘米
周长: 31.4159 厘米
改半径后 面积: 314.159 平方厘米
注意:常量 PI 始终是 3.14159,如果你试图修改它(比如 PI = 3.14;),编译器会报错。而半径 radius 可以自由更改,这就是变量与常量的区别。
6. 小练习(重温一下)
想想看,下面哪些东西应该用变量,哪些应该用常量?
- 你的年龄(会变 → 变量)
- 数学上的“圆周率”(不变 → 常量)
- 你玩的游戏里角色的金币数(会变 → 变量)
- 一年有12个月(不变 → 常量)
- 今天的气温(会变,每分钟都可能测出不同值 → 变量)
如果都能正确判断,恭喜你,你已经掌握了变量和常量的基本用法!
7. 接下来可以学什么?
- 输入输出:用
cin让用户自己输入半径,程序就不需要写死在代码里了。 - 运算符:加减乘除、求余数,让变量能更好地变化。
- 条件判断:比如判断游戏金币是否足够买新装备,用
if语句。 - 数据类型进阶:
double(精度更高的小数)、string(字符串,比如你的名字)。
变量和常量是编程的“地基”,打好基础,后面的高楼大厦才能稳稳地建起来。试试自己写几个小程序,把生活中的数据用变量和常量装进去吧!
例题精讲
在C++中,以下哪条语句正确地声明了一个整型变量并初始化为10?
在C++中,使用const关键字定义的常量在程序运行过程中可以被修改。
请在下面代码的横线处填上合适的关键字,使程序定义一个值为3.14的常量PI:
#include <iostream>
using namespace std;
int main() {
___ double PI = 3.14;
cout << PI;
return 0;
}下列有关变量和常量的说法,哪一项是正确的?
以下代码中,变量a被赋值为5,然后修改为10。请在横线处填上正确的赋值语句。
#include <iostream>
using namespace std;
int main() {
int a = 5;
___ = 10;
cout << a;
return 0;
}