CC++ & Algorithm

标识符、关键字与常量变量

简单9
语言版本:C++
概述:学习如何给程序中的“东西”起名字,并区分固定不变的值和可以变化的值。

给C++里的“东西”起名字:标识符、关键字、常量和变量

在C++程序中,每个数据、每个功能都需要一个名字。就像你叫“小明”,你的书包叫“书包”一样,程序里用来存放数据的“容器”或者“固定值”也需要名字,这些名字叫做标识符。但起名字不能随便乱起,C++有自己的一套规矩。另外,有些名字已经被C++“预订”了,你不能再用,这些叫关键字。程序里的数据分两种:常量(永远不变)和变量(可以改变)。下面我们一步步讲清楚。


1. 标识符:给程序里的“东西”起个好名字

标识符就是你给变量、常量、函数等起的名字。例如你给存零花钱的变量起名 pocket_money,给计算圆面积的函数起名 calcArea

起名字的规则(必须遵守)

  • 只能使用字母(a-z, A-Z)数字(0-9)下划线(_)
  • 不能以数字开头。比如 2ndPlace 就不行,但 secondPlace 可以。
  • 不能是C++关键字(后面会讲)。
  • 区分大小写scoreScore 是两个不同的名字。
  • 不要用中文或特殊符号,比如 我的分数score#1 都是非法的。

好名字的建议(不是强制,但很重要)

给变量起名要“见名知意”。比如:

  • 存成绩用 score,不要用 sa1
  • 存零花钱用 pocket_moneyallowance
  • 存年龄用 age

这样代码读起来就像一篇流畅的故事,别人(包括你未来自己)一看就懂。

合法标识符例子myName_countvalue2student_age
非法标识符例子2nd(数字开头)、my-name(有连字符)、float(关键字)


2. 关键字:被C++“预订”的名字

C++里有一些单词已经被系统“预订”了,比如 intreturnifelsewhileconst 等等。这些关键字有特殊作用,用来定义数据类型、控制程序流程等。你不能把它们当变量名或常量名使用,否则编译器会“生气”报错。

常见关键字举例(仅部分,不用背,遇到自然记得):

  • 数据类型:intdoublecharbool
  • 流程控制:ifelseforwhileswitch
  • 其他:returnconsttruefalsevoid

错误示范

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++程序了。接下来可以学习:

  • 基本数据类型intdoublecharbool 等更多细节,比如它们能存多大范围的值。
  • 输入输出:用 cincout 让程序与用户交互。
  • 运算符:加减乘除、取余、自增自减,让变量做更多计算。
  • 作用域:变量在什么范围内有效。

打好这些基础,你就可以去解决生活中的各种小问题了,比如计算期末考试平均分、模拟游戏中的血条变化等。继续加油!

例题精讲

1单选题

以下哪个选项是C++中合法的标识符?

A2x_value
B_count
Cint
Dmy-var
2判断题

在C++中,关键字可以作为变量名使用。

3填空题
下面代码中,使用关键字___声明一个整型变量score并初始化为100。
4单选题

关于常量和变量,下列说法正确的是?

A常量定义后可以修改其值
B变量的值在程序运行过程中可以改变
C常量和变量都需要用const关键字声明
D变量定义后值不能再改变
5判断题

C++中,下划线开头的标识符(如 _value)总是合法的。