⚙️ C++

C++中的变量和数据类型

这是什么?为什么需要它?

想象一下你在玩电脑游戏。你有一个背包:剑、生命药水、金币。在编程中也是如此——我们需要存储程序处理的数据。变量就像小盒子或箱子,你可以把数字、单词或其他东西放进去。每个盒子都有一个名字(例如,生命值 或 英雄名字),并且只能存放特定类型的东西:一个放数字,另一个放文本,第三个放是/否。

数据类型就是规则,它们规定:“这个盒子只能放整数”,“而这个只能放单词”。为什么需要这样?为了让计算机不混淆:如果你说盒子里是数字,那么就可以进行加、减、乘运算。如果是文本,就可以进行其他操作:连接单词、查找字母。没有数据类型就会一片混乱——就像在游戏中,剑突然变成了药水,而金币开始说话。

这对学生很重要,因为任何程序都是对数据的处理。想做计算器?需要数字。想做带对话的游戏?需要字符串(文本)。想检查玩家是否通过了关卡?需要逻辑值(真/假)。变量和类型是构建其他一切的基础。

语法和代码示例

在 C++ 中,你需要先声明变量——告诉计算机:“听着,我想要一个叫这个名字的盒子,里面放这些数据。”做法如下:先写数据类型,然后是变量名,接着(如果需要)写等号和值。

#include <iostream>  // 为了能在屏幕上输出文本
using namespace std;  // 为了不用在每个单词前写 std::

int main() {
    // 示例 1:整数 (int)
    int 年龄 = 14;  // 创建 int 类型(整数)的变量“年龄”,并放入 14
    cout << "我的年龄: " << 年龄 << endl;  // 输出到屏幕

    // 示例 2:浮点数 (double) — 用于小数
    double 身高 = 1.65;  // 身高以米为单位,可以存储 1.65
    cout << "我的身高: " << 身高 << " 米" << endl;

    // 示例 3:文本 (string)
    string 名字 = "Alice";  // 引号内的单词或短语
    cout << "我叫 " << 名字 << endl;

    // 示例 4:布尔类型 (bool) — 只有 true(真)或 false(假)
    bool 喜欢编程 = true;  // true = 1, false = 0
    cout << "喜欢编程吗? " << 喜欢编程 << endl;  // 输出 1(因为 true)

    // 示例 5:字符 (char) — 单引号内的一个字母或数字
    char 名字首字母 = 'A';
    cout << "名字的首字母: " << 名字首字母 << endl;

    return 0;  // 程序成功结束
}

注意:在 C++ 中,每个表达式都以分号 ; 结尾。如果忘记写,程序将无法编译(计算机不知道命令在哪里结束)。

另一个例子——如何修改变量:

int 分数 = 0;        // 初始为 0
分数 = 10;           // 现在为 10
分数 = 分数 + 5;     // 现在为 15(取旧值,加 5)
cout << 分数 << endl;  // 输出 15

数据类型不能更改:如果你声明了 int,之后就不能往里面放文本。计算机会报错。

与 Python 的比较

在 Python 中,一切更简单:不需要指定数据类型。Python 自己会推断你的意图。但这种简单性需要付出速度和严谨性的代价——在 C++ 中,你确切知道每个变量占用多少内存,程序运行得更快。

看看同样的例子在 Python 中是什么样子:

# Python:不需要写 int、string、bool —— 类型自动确定
年龄 = 14          # Python 自己知道这是数字
身高 = 1.65        # 这是小数
名字 = "Alice"     # 这是字符串
喜欢编程 = True    # 布尔类型
名字首字母 = 'A'   # 字符(在 Python 中这也是字符串,但只有一个字符)

print("我的年龄:", 年龄)
print("我的身高:", 身高, "米")
print("我叫", 名字)
print("喜欢编程吗?", 喜欢编程)
print("名字的首字母:", 名字首字母)

区别明显吗?在 C++ 中我们写 int 年龄 = 14;,而在 Python 中只需 年龄 = 14。Python 不需要类型声明——它根据值自行判断。但如果你在 C++ 中尝试写 int 年龄 = "Alice";,编译器会报错。而在 Python 中你可以写 年龄 = "Alice",它不会反对——但之后如果你试图将年龄与数字相加,程序会在运行时崩溃。

另一个区别:在 C++ 中需要包含库(例如,用于屏幕输出的 #include <iostream>),而在 Python 中许多功能已经内置。对于学生来说,Python 更容易入门,但 C++ 能让你更深入地理解计算机的工作原理。

新手常见错误

  • 忘记分号。 这是最常见的错误。编译器会说:“错误:期望分号”。只需在每条命令末尾加上 ;。
  • 使用未声明的变量。 如果你写 cout << x;,而变量 x 没有被声明,编译器不知道它是什么。始终先声明:int x = 5;
  • 混淆引号。 对于字符串(多个字符)需要使用双引号:"Hello"。对于单个字符,使用单引号:'A'。如果混淆,会出错。
  • 赋值错误类型的值。 例如,int a = 3.14; —— 编译器可能会警告小数部分会丢失(结果将是