🚀

C++ 基础语法速查手册

小学生编程学习必备 · 翻开就能查 · 一看就会用

📢
输出 cout
让程序开口说话的小喇叭

💡 核心概念

cout 是 C++ 的输出语句,用来在屏幕上显示文字、数字或变量内容。想象它是一张小喇叭 📢,把程序想告诉你的信息"播报"出来!

示例代码
#include <iostream>
using namespace std;

int main() {
    // 输出文字
    cout << "Hello, 世界!" << endl;

    // 输出数字和文字混合
    cout << "我今年" << 10 << "岁啦!" << endl;

    // 输出变量
    int age = 12;
    cout << "虚岁是:" << age << endl;

    return 0;
}
📺 运行结果
Hello, 世界! 我今年10岁啦! 虚岁是:12
📋 语法详解
语法 说明 示例
cout << "文字"; 输出字符串 cout << "你好";
cout << 变量; 输出变量值 cout << age;
cout << endl; 换行 输出后光标移到下一行
<< 插入运算符 连接要输出的内容
⚠️ 常见错误
忘记写 << 连接符

cout << "年龄" age; → 应该写成 cout << "年龄" << age;

文字没有用双引号包裹

cout << Hello; → 应该写成 cout << "Hello";

忘记写 endl 导致内容挤在一行

多行输出记得每行末尾加 << endl

✏️ 小练习
试着让程序说出你的名字和爱好!输出格式:"我叫XXX,喜欢XXX!"
📦
变量 Variable
带名字的小盒子,装数据的容器

💡 核心概念

变量是用来存放数据的"小盒子",每个盒子有一个名字,可以装不同类型的数据。就像贴标签的收纳盒 🎁!

📊 常用数据类型
类型 英文名 装什么 示例
int integer 整数 年龄、分数、人数
double double 小数 身高、体重、价格
char character 单个字符 'A'、'男'、'5'
bool boolean 真假 true(真)、false(假)
string string 一串文字 "小明"、"北京"
示例代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    int age = 10;              // 整数:年龄
    double height = 1.45;      // 小数:身高(米)
    char grade = 'A';          // 字符:成绩等级
    bool isStudent = true;     // 布尔:是否是学生
    string name = "小明";       // 字符串:姓名

    cout << "姓名:" << name << endl;
    cout << "年龄:" << age << "岁" << endl;
    cout << "身高:" << height << "米" << endl;
    cout << "成绩等级:" << grade << endl;
    cout << "是学生吗:" << isStudent << endl;  // 输出 1 表示 true

    return 0;
}
📺 运行结果
姓名:小明 年龄:10岁 身高:1.45米 成绩等级:A 是学生吗:1
📝 命名规则
可以这样做

只能用字母、数字、下划线;不能以数字开头;区分大小写(Age 和 age 是不同的变量)

不可以这样做

不能用关键字(如 int、return、cout);不能用特殊符号(@、#、$ 等)

✏️ 小练习
定义变量记录你最喜欢的游戏、游戏得分、是否通关。
⌨️
输入 cin
程序的小耳朵,听用户说话

💡 核心概念

cin 用来接收用户从键盘输入的数据,存到变量里。就像程序的小耳朵 👂,在认真听用户输入什么内容!

示例代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string name;
    int score;

    cout << "请输入你的名字:";
    cin >> name;                    // 等待用户输入名字

    cout << "请输入你的分数:";
    cin >> score;                   // 等待用户输入分数

    cout << "你好," << name << "!" << endl;
    cout << "你考了" << score << "分,真棒!" << endl;

    return 0;
}
📺 运行过程(用户输入 95)
请输入你的名字:小明 请输入你的分数:95 你好,小明! 你考了95分,真棒!
💡
一次输入多个值

cin >> a >> b; 可以连续输入,中间用空格或回车分隔

✏️ 小练习
写一个程序,输入两个数字,输出它们的和。
🔢
运算 Operator
数学小能手,加减乘除样样行

💡 核心概念

C++ 可以进行各种数学运算,和计算器一样方便!但要注意:整数除以整数,结果还是整数,小数部分会被直接丢掉!

📊 运算符一览表
运算符 名称 作用 示例 结果
+ 两数相加 5 + 3 8
- 两数相减 5 - 3 2
* 两数相乘 5 * 3 15
/ 两数相除 17 / 5 3(整数)
% 取余 求余数 17 % 5 2
++ 自增 加1 a++ a+1
示例代码
#include <iostream>
using namespace std;

int main() {
    int a = 17, b = 5;

    cout << "加法:" << a + b << endl;   // 22
    cout << "减法:" << a - b << endl;   // 12
    cout << "乘法:" << a * b << endl;   // 85
    cout << "除法:" << a / b << endl;   // 3(整数除法)
    cout << "余数:" << a % b << endl;   // 2

    double c = 17.0 / 5;  // 3.4(小数除法)
    cout << "小数除法:" << c << endl;

    return 0;
}
🎯
取余 % 的妙用

判断奇偶:n % 2 == 0 是偶数;获取个位数:num % 10

✏️ 小练习
输入一个三位数,输出它的个位、十位、百位数字。(提示:用 / 和 %)
🚦
条件判断 if-else
程序的分岔路口,红灯停绿灯行

💡 核心概念

根据条件是否成立,让程序走不同的路。就像红绿灯 🚦,红灯停、绿灯行!

📊 比较运算符
运算符 含义 示例 结果
== 等于 5 == 5 true
!= 不等于 5 != 3 true
> 大于 5 > 3 true
< 小于 5 < 3 false
>= 大于等于 5 >= 5 true
<= 小于等于 5 <= 3 false
成绩等级判断示例
#include <iostream>
using namespace std;

int main() {
    int score;
    cout << "请输入分数:";
    cin >> score;

    if (score >= 90) {
        cout << "优秀!🌟" << endl;
    } else if (score >= 80) {
        cout << "良好!👍" << endl;
    } else if (score >= 60) {
        cout << "及格!✅" << endl;
    } else {
        cout << "不及格,继续加油!💪" << endl;
    }

    return 0;
}
⚠️
常见错误:== 和 = 的区别

== 是比较(是否相等),= 是赋值。写 if (a = 5) 会永远为真!

✏️ 小练习
判断输入的年份是否是闰年。(闰年条件:能被4整除且不能被100整除,或能被400整除)
🔄
循环 for
勤劳的小蜜蜂,重复做事情

💡 核心概念

for 循环让程序重复执行一段代码。就像勤劳的小蜜蜂 🐝,飞到每一朵花上采蜜,直到全部采完!

语法结构
for (初始化; 条件; 更新) {
    // 循环体:要重复执行的代码
}

// 执行流程:
// ① 初始化 → ② 判断条件 → ③ 条件成立执行循环体 → ④ 更新 → 回到②
//               ↓ 条件不成立
//            退出循环
完整示例
#include <iostream>
using namespace std;

int main() {
    // 数1到5
    for (int i = 1; i <= 5; i++) {
        cout << i << " ";
    }
    cout << endl;  // 输出:1 2 3 4 5

    // 倒计时
    for (int i = 5; i >= 1; i--) {
        cout << i << "... ";
    }
    cout << "发射!🚀" << endl;

    // 计算 1+2+3+...+10
    int sum = 0;
    for (int i = 1; i <= 10; i++) {
        sum = sum + i;  // 累加
    }
    cout << "1到10的和:" << sum << endl;  // 55

    return 0;
}
💡
循环控制

break 立即跳出整个循环;continue 跳过当前这次,继续下一次

✏️ 小练习
打印乘法口诀表(1×1到9×9)。
🔄 while 循环 - 当条件满足就一直做

💡 核心概念

while 循环会在条件为真时重复执行代码。就像妈妈说的 "作业写完才能玩" —— 只要没写完(条件成立),就得一直写!

语法结构
while (条件) {
    // 循环体:条件成立时执行的代码
    // 记得更新条件,否则会死循环!
}

// 执行流程:先判断条件 → 条件成立执行循环体 → 回到判断
//               ↓ 条件不成立
//            退出循环
完整示例
#include <iostream>
using namespace std;

int main() {
    // 示例1:数到5
    int i = 1;
    while (i <= 5) {
        cout << i << " ";
        i++;  // 重要!更新条件变量
    }
    cout << endl;  // 输出:1 2 3 4 5

    // 示例2:用户输入密码(直到正确为止)
    int password = 0;
    while (password != 1234) {
        cout << "请输入密码:";
        cin >> password;
        if (password != 1234) {
            cout << "密码错误,请重试!" << endl;
        }
    }
    cout << "密码正确,欢迎!" << endl;

    return 0;
}
💡
何时用 while?

当你不知道要循环多少次时(比如等待用户输入正确、游戏直到通关),用 while 最合适!

🔁 do-while 循环 - 先做一次再说

💡 核心概念

do-while 循环至少执行一次,然后再判断条件。就像试吃 —— 先吃一口(执行),再决定要不要继续吃(判断)!

语法结构
do {
    // 循环体:至少执行一次
} while (条件);  // 注意这里有分号!

// 执行流程:先执行循环体 → 判断条件 → 成立则继续
//                           ↓ 不成立
//                        退出循环
完整示例
#include <iostream>
using namespace std;

int main() {
    // 示例1:数到5
    int i = 1;
    do {
        cout << i << " ";
        i++;
    } while (i <= 5);
    cout << endl;  // 输出:1 2 3 4 5

    // 示例2:菜单选择(至少显示一次菜单)
    int choice;
    do {
        cout << "===== 游戏菜单 =====" << endl;
        cout << "1. 开始游戏" << endl;
        cout << "2. 查看说明" << endl;
        cout << "3. 退出" << endl;
        cout << "请选择(1-3):";
        cin >> choice;

        if (choice == 1) {
            cout << "游戏开始!" << endl;
        } else if (choice == 2) {
            cout << "游戏说明..." << endl;
        }
    } while (choice != 3);
    cout << "再见!" << endl;

    return 0;
}
⚠️
while vs do-while 关键区别

while:先判断,可能一次都不执行
do-while:后判断,至少执行一次

📊 三种循环对比
循环类型 特点 适用场景
for 初始化、条件、更新写在一起 知道循环次数(如遍历数组)
while 先判断,可能一次都不执行 不知道循环次数(如等待输入)
do-while 先执行,至少执行一次 菜单、至少执行一次的场景
📝
字符串 string
处理文字的魔法

💡 核心概念

string 用于存储和处理一串文字。需要包含 #include <string> 头文件才能使用!

📊 常用操作
操作 语法 示例 结果
获取长度 s.length() "Hello".length() 5
拼接 s1 + s2 "Hello" + "World" "HelloWorld"
访问字符 s[下标] "Hello"[0] 'H'
输入(含空格) getline(cin, s) - 读取一行
示例代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string name = "小明";
    string hobby = "喜欢编程";

    // 拼接
    cout << name + "," + hobby + "���" << endl;

    // 长度
    cout << "名字长度:" << name.length() << endl;

    // 遍历字符
    string word = "HELLO";
    for (int i = 0; i < word.length(); i++) {
        cout << word[i] << " ";
    }

    return 0;
}
💡
重要区别

cin >> s 遇到空格就停止;getline(cin, s) 可以读取整行(包含空格)

📚
数组 Array
整齐的数据队列

💡 核心概念

数组是一组相同类型数据的集合,排成一排。就像教室里的座位排 🪑,每个座位有自己的编号(下标),从 0 开始!

语法与示例
// 定义并初始化
int scores[5] = {85, 92, 78, 96, 88};
int nums[] = {1, 2, 3, 4, 5};  // 自动计算大小为5

// 访问元素
scores[0];  // 第1个元素:85
scores[2];  // 第3个元素:78

// 遍历数组
for (int i = 0; i < 5; i++) {
    cout << scores[i] << " ";
}
完整示例:成绩统计
#include <iostream>
using namespace std;

int main() {
    int scores[5] = {85, 92, 78, 96, 88};

    // 计算平均分
    int sum = 0;
    for (int i = 0; i < 5; i++) {
        sum += scores[i];
    }
    cout << "平均分:" << sum / 5.0 << endl;

    // 找最高分
    int maxScore = scores[0];
    for (int i = 1; i < 5; i++) {
        if (scores[i] > maxScore) {
            maxScore = scores[i];
        }
    }
    cout << "最高分:" << maxScore << endl;

    return 0;
}
⚠️
常见错误:数组越界

scores[5] 有5个元素,有效下标是 0~4。访问 scores[5] 会导致错误!

📊 二维数组 - 表格数据

💡 核心概念

二维数组就像一张表格 📋,有行和列。可以用来存储矩阵、棋盘、学生成绩表等二维数据。想象成一个班级座位表,每个人都有「行号」和「列号」!

语法结构
// 定义二维数组:类型 数组名[行数][列数]
int matrix[3][4];  // 3行4列的矩阵

// 定义时初始化
int scores[3][4] = {
    {85, 92, 78, 90},  // 第1行
    {88, 76, 95, 82},  // 第2行
    {90, 85, 88, 91}   // 第3行
};

// 访问元素:数组名[行][列]
scores[0][0];  // 第1行第1列:85
scores[1][2];  // 第2行第3列:95
完整示例:学生成绩表
#include <iostream>
using namespace std;

int main() {
    // 3个学生,每人4门课成绩
    int scores[3][4] = {
        {85, 92, 78, 90},
        {88, 76, 95, 82},
        {90, 85, 88, 91}
    };

    // 计算每个学生的平均分
    for (int i = 0; i < 3; i++) {
        int sum = 0;
        for (int j = 0; j < 4; j++) {
            sum += scores[i][j];
        }
        cout << "学生" << (i + 1) << "平均分:" << sum / 4.0 << endl;
    }

    // 打印成绩表
    cout << "\n成绩表:" << endl;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            cout << scores[i][j] << "\t";
        }
        cout << endl;
    }

    return 0;
}
📺 运行结果
学生1平均分:86.25 学生2平均分:85.25 学生3平均分:88.5 成绩表: 85 92 78 90 88 76 95 82 90 85 88 91
示例:打印乘法表
#include <iostream>
using namespace std;

int main() {
    // 生成乘法表
    int table[9][9];

    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            table[i][j] = (i + 1) * (j + 1);
        }
    }

    // 打印乘法表(只打印下三角)
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j <= i; j++) {
            cout << (j + 1) << "x" << (i + 1) << "=" << table[i][j] << "\t";
        }
        cout << endl;
    }

    return 0;
}
💡
二维数组小技巧

• 外层循环控制「行」,内层循环控制「列」
• 初始化时可省略第一维大小:int a[][3] = {{1,2,3}, {4,5,6}};
• 常用于:地图、棋盘、图片像素、表格数据

🏗️
结构体 struct
自定义数据类型,数据打包

💡 核心概念

结构体可以把多个不同类型的数据打包在一起。就像学生档案袋 📁,里面装着姓名、年龄、成绩等资料!

语法结构
// 定义结构体
struct Student {
    string name;    // 姓名
    int age;        // 年龄
    double score;   // 成绩
    bool isMale;    // 是否为男生
};

// 创建变量并初始化
Student stu1 = {"小明", 12, 95.5, true};

// 访问成员
cout << stu1.name;   // 输出:小明
stu1.score = 99;   // 修改成绩
完整示例
#include <iostream>
#include <string>
using namespace std;

struct Student {
    string name;
    int age;
    double score;
};

int main() {
    // 定义学生
    Student stu1 = {"小明", 12, 95.5};
    Student stu2 = {"小红", 11, 98.0};

    // 输出信息
    cout << stu1.name << " " << stu1.age << "岁 "
         << stu1.score << "分" << endl;

    // 结构体数组
    Student class3[3] = {
        {"小明", 12, 95.5},
        {"小红", 11, 98.0},
        {"小刚", 12, 88.5}
    };

    return 0;
}
💡
使用场景

存储复杂数据(学生、商品、游戏角色)、函数返回多个值、组织相关数据使代码更清晰

⚙️
函数 Function
代码积木,重复使用

💡 核心概念

函数是把一段常用代码打包起来,给它起个名字。就像乐高积木 🔧,可以重复使用,组合起来搭建复杂作品!

📊 函数类型
类型 声明 说明
无参数无返回 void fn() 只做事情,不返回结果
有参数无返回 void fn(int a) 接收数据,处理但不返回
无参数有返回 int fn() 返回一个整数结果
有参数有返回 int fn(int a, int b) 接收数据,处理后返回结果
完整示例
#include <iostream>
using namespace std;

// 函数声明
void sayHello();
int add(int a, int b);
int maxOfTwo(int a, int b);

int main() {
    sayHello();

    int sum = add(10, 20);
    cout << "10 + 20 = " << sum << endl;

    cout << "max(7, 3) = " << maxOfTwo(7, 3) << endl;

    return 0;
}

// 函数定义
void sayHello() {
    cout << "你好!欢迎来到C++世界!" << endl;
}

int add(int a, int b) {
    return a + b;
}

int maxOfTwo(int a, int b) {
    if (a > b) return a;
    else return b;
}
💡
函数的好处

代码复用(写一次用多次)、结构清晰(拆成小模块)、易于维护(修改一处处处生效)

💬
注释 Comment
代码的说明书

💡 核心概念

注释是写给程序员看的说明文字,程序运行时会被完全忽略。// 是单行注释,/* */ 是多行注释。

📊 注释类型
类型 语法 使用场景
单行注释 // 注释内容 简短的说明
多行注释 /* 注释内容 */ 较长的说明或临时屏蔽代码
示例代码
/*
 * 程序名:学生成绩计算器
 * 作者:小明
 * 日期:2026-03-08
 * 功能:输入成绩,判断等级
 */

#include <iostream>
using namespace std;

int main() {
    int score;  // 定义变量存储分数

    cout << "请输入分数:";
    cin >> score;

    // TODO: 增加输入验证(0-100)

    // 根据分数判断等级
    if (score >= 90) {
        cout << "优秀" << endl;  // 90分以上
    } else {
        cout << "继续加油" << endl;
    }

    /*
    // 这段代码暂时不用,先注释掉
    for (int i = 0; i < 5; i++) {
        cout << i << endl;
    }
    */

    return 0;  // 程序正常结束
}
💡
好习惯

"代码写给别人看,顺便让机器执行。" 好的注释能让你一个月后还能看懂自己的代码!