标识符、关键字与常量变量
简单9给C++里的“东西”起名字:标识符、关键字、常量和变量
在C++程序中,每个数据、每个功能都需要一个名字。就像你叫“小明”,你的书包叫“书包”一样,程序里用来存放数据的“容器”或者“固定值”也需要名字,这些名字叫做标识符。但起名字不能随便乱起,C++有自己的一套规矩。另外,有些名字已经被C++“预订”了,你不能再用,这些叫关键字。程序里的数据分两种:常量(永远不变)和变量(可以改变)。下面我们一步步讲清楚。
1. 标识符:给程序里的“东西”起个好名字
标识符就是你给变量、常量、函数等起的名字。例如你给存零花钱的变量起名 pocket_money,给计算圆面积的函数起名 calcArea。
起名字的规则(必须遵守)
- 只能使用字母(a-z, A-Z)、数字(0-9)和下划线(_)。
- 不能以数字开头。比如
2ndPlace就不行,但secondPlace可以。 - 不能是C++关键字(后面会讲)。
- 区分大小写:
score和Score是两个不同的名字。 - 不要用中文或特殊符号,比如
我的分数、score#1都是非法的。
好名字的建议(不是强制,但很重要)
给变量起名要“见名知意”。比如:
- 存成绩用
score,不要用s或a1。 - 存零花钱用
pocket_money或allowance。 - 存年龄用
age。
这样代码读起来就像一篇流畅的故事,别人(包括你未来自己)一看就懂。
合法标识符例子:myName、_count、value2、student_age
非法标识符例子:2nd(数字开头)、my-name(有连字符)、float(关键字)
2. 关键字:被C++“预订”的名字
C++里有一些单词已经被系统“预订”了,比如 int、return、if、else、while、const 等等。这些关键字有特殊作用,用来定义数据类型、控制程序流程等。你不能把它们当变量名或常量名使用,否则编译器会“生气”报错。
常见关键字举例(仅部分,不用背,遇到自然记得):
- 数据类型:
int、double、char、bool - 流程控制:
if、else、for、while、switch - 其他:
return、const、true、false、void
错误示范:
int if = 10; // 错误!if 是关键字
double return = 3.14; // 错误!return 是关键字
3. 常量:固定不变的值
常量好比冰箱上贴的冰箱贴——永远不变。例如:
- 圆周率 π ≈ 3.14159
- 班级人数(如果不允许转学插班)
- 每瓶可乐的价格(假如不涨价)
在C++中,用 const 关键字来定义常量,后面跟数据类型和名字,然后赋一个初始值。一旦定义,就不能修改。
格式:const 数据类型 名字 = 初始值;
生活中的例子:
- 学校每天上午第一节课总是8:00开始:
const int start_hour = 8; - 一天有24小时:
const int hours_per_day = 24; - 你的生日年份(假设你出生在2015年):
const int birth_year = 2015;
代码演示:
#include <iostream>
using namespace std;
int main() {
const double PI = 3.14159; // 常量:圆周率,不可修改
const int class_size = 45; // 常量:班级人数固定45人
// PI = 3.14; // 这行如果去掉注释,编译会出错!因为常量不能修改
cout << "圆周率是:" << PI << endl;
cout << "班级有 " << class_size << " 人" << endl;
return 0;
}
4. 变量:可以变化的值
变量就像你家的温度计——数值可以随时变化。比如:
- 你手里的零花钱:今天花掉10元,明天妈妈又给20元。
- 你的考试分数:这次考90分,下次考95分。
- 当前时间:每一秒都在变。
定义变量时,先写数据类型,再写变量名,可以赋初值(也可以不赋,但建议赋初值以免使用未初始化的值造成意外)。
格式:数据类型 变量名 = 初始值; 或 数据类型 变量名;
生活中的例子:
- 你的年龄(每年增加):
int age = 10; - 你存钱罐里的钱数:
double money = 50.5; - 游戏中的生命值:
int health = 100;
代码演示:
#include <iostream>
using namespace std;
int main() {
int pocket_money = 30; // 当前零花钱30元
cout << "一开始我有 " << pocket_money << " 元" << endl;
pocket_money = pocket_money - 5; // 买一包薯片花了5元
cout << "买薯片后我有 " << pocket_money << " 元" << endl;
pocket_money = pocket_money + 20; // 妈妈奖励了20元
cout << "奖励后我有 " << pocket_money << " 元" << endl;
return 0;
}
5. 新手容易犯的错误
错误1:变量没赋初值就使用
int score;
cout << score; // 可能输出一个随机值(未定义行为)
正确做法:定义时给一个初始值,比如 int score = 0;
错误2:混淆 = 和 ==
=是赋值:把右边的值放入左边变量。==是判断相等:比较左右是否相等(后面学条件判断时用)。
错误3:常量被修改
const int total = 100;
total = 200; // 编译报错,常量不能改
错误4:标识符以数字开头或包含特殊字符
int 1st_place = 10; // 错误!数字开头
double my-price = 5.5; // 错误!有连字符
错误5:关键字用作变量名
int if = 5; // 错误!if 是关键字
6. 完整可运行示例:计算零花钱和购物
下面的程序综合使用常量、变量和标识符,计算一周零花钱可以买多少零食。
#include <iostream>
using namespace std;
int main() {
const double candy_price = 2.5; // 一颗糖果单价2.5元,常量
double weekly_allowance = 50.0; // 一周零花钱50元,变量
int candy_count = 0; // 初始糖果数量为0
cout << "一周零花钱:" << weekly_allowance << " 元" << endl;
cout << "一颗糖果价格:" << candy_price << " 元" << endl;
// 计算能买几颗糖果
candy_count = weekly_allowance / candy_price; // 整数除法,自动取整
cout << "你可以买 " << candy_count << " 颗糖果" << endl;
// 花掉10元买冰淇淋
weekly_allowance = weekly_allowance - 10.0;
cout << "买冰淇淋后零花钱还剩:" << weekly_allowance << " 元" << endl;
// 再算还能买几颗糖果
candy_count = weekly_allowance / candy_price;
cout << "剩下的钱还能买 " << candy_count << " 颗糖果" << endl;
return 0;
}
输出示例:
一周零花钱:50 元
一颗糖果价格:2.5 元
你可以买 20 颗糖果
买冰淇淋后零花钱还剩:40 元
剩下的钱还能买 16 颗糖果
7. 相关指引
学会了标识符、关键字、常量和变量,你已经能写出简单的C++程序了。接下来可以学习:
- 基本数据类型:
int、double、char、bool等更多细节,比如它们能存多大范围的值。 - 输入输出:用
cin和cout让程序与用户交互。 - 运算符:加减乘除、取余、自增自减,让变量做更多计算。
- 作用域:变量在什么范围内有效。
打好这些基础,你就可以去解决生活中的各种小问题了,比如计算期末考试平均分、模拟游戏中的血条变化等。继续加油!
例题精讲
以下哪个选项是C++中合法的标识符?
在C++中,关键字可以作为变量名使用。
下面代码中,使用关键字___声明一个整型变量score并初始化为100。关于常量和变量,下列说法正确的是?
C++中,下划线开头的标识符(如 _value)总是合法的。