C++ 零基础自学完整知识框架
·
目标读者:从未接触过编程或刚接触编程的小白
目标效果:学完本框架后,能独立编写基础C++程序,理解核心语法,为后续深入学习(如数据结构、算法、面向对象)打下坚实基础。
学习建议:边看边敲代码,动手实践是掌握编程的唯一途径!
🧱 第一章:初识C++ —— 编程世界的起点
1.1 什么是C++?
-
通俗解释:
-
C++ 是一门功能强大、应用广泛的编程语言。它由C语言发展而来,既能写底层系统程序(如操作系统),也能开发大型软件(如游戏、图形界面)。它的特点是高效、灵活、贴近硬件。
-
类比: 如果把编程比作盖房子,C++就像是一套完整的建筑工具箱:有锤子、锯子、电钻……你可以用它搭建任何你想要的结构。
-
应用场景:
- 游戏开发(如《英雄联盟》)
- 操作系统(如Windows部分模块)
- 高性能计算(如金融交易系统)
- 嵌入式设备(如智能手表)
1.2 第一个C++程序:“Hello, World!”
✅ 代码示例:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
🔍 逐行解释:
| 代码 | 含义 |
|---|---|
#include <iostream> |
引入“输入输出流”库,让程序能打印文字 |
using namespace std; |
使用标准命名空间,简化代码(暂时记住这句话) |
int main() |
主函数——程序的入口,所有代码从这里开始执行 |
{ } |
大括号包裹函数体,表示代码块 |
cout << "Hello, World!" << endl; |
打印文字到屏幕,endl表示换行 |
return 0; |
表示程序正常结束 |
💡 小贴士:
- 每个C++程序必须有且只有一个
main()函数。 cout是“控制台输出”的缩写,读作“see-out”。<<是“插入运算符”,把右边的内容“插入”到输出流中。
1.3 如何运行C++程序?
🛠️ 工具推荐(小白友好):
- 在线编译器(无需安装):
- https://www.onlinegdb.com
- https://replit.com
- 本地IDE(推荐长期使用):
- Code::Blocks(轻量,适合新手)
- Dev-C++(简单易用)
- Visual Studio Code + C++插件(进阶选择)
📝 操作步骤(以在线编译器为例):
- 打开网站
- 选择“C++”语言
- 粘贴代码
- 点击“Run”按钮
- 查看输出结果
🔢 第二章:变量与数据类型 —— 存储信息的“盒子”
2.1 什么是变量?
-
通俗解释: 变量就像是一个“带标签的盒子”,你可以把数据(如数字、文字)放进去,以后通过标签名找到它。
-
例子:
int age = 18;
-
这表示:创建一个叫
age的盒子,类型是整数(int),里面放了数字 18。
2.2 常见数据类型
| 类型 | 名称 | 范围 | 示例 |
|---|---|---|---|
int |
整数 | -21亿 ~ 21亿 | int score = 95; |
float |
单精度浮点数 | 小数,约6位精度 | float price = 9.99; |
double |
双精度浮点数 | 小数,约15位精度 | double pi = 3.1415926; |
char |
字符 | 单个字母或符号 | char grade = 'A'; |
bool |
布尔值 | true 或 false |
bool isPass = true; |
string |
字符串 | 一串文字(需 #include <string>) |
string name = "小明"; |
✅ 代码示例:
#include <iostream>
#include <string> // 使用string必须包含这个头文件
using namespace std;
int main() {
int age = 20;
double height = 1.75;
char initial = 'Z';
bool isStudent = true;
string name = "张三";
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "身高:" << height << "米" << endl;
cout << "首字母:" << initial << endl;
cout << "是否学生:" << isStudent << endl; // true显示为1,false为0
return 0;
}
⚠️ 注意事项:
- 变量名不能以数字开头,不能包含空格或特殊符号(如
@、#)。 - 推荐使用驼峰命名法:如
studentName,totalScore。 string不是基本类型,是C++标准库提供的类,所以需要#include <string>。
➕ 第三章:运算符与表达式 —— 让数据“动”起来
3.1 算术运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
+ |
加法 | 5 + 3 → 8 |
- |
减法 | 5 - 3 → 2 |
* |
乘法 | 5 * 3 → 15 |
/ |
除法 | 5 / 2 → 2(整数除法) |
% |
取余 | 5 % 2 → 1 |
✅ 代码示例:
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 3;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl; // 结果是3,不是3.333
cout << "a % b = " << a % b << endl; // 10除以3余1
// 想要小数结果?用double
double x = 10.0, y = 3.0;
cout << "x / y = " << x / y << endl; // 3.333...
return 0;
}
💡 提示:
- 整数除法会自动舍去小数部分,要得到小数,至少一个操作数是
double或float。
3.2 赋值运算符
| 运算符 | 示例 | 等价于 |
|---|---|---|
= |
a = 5 |
a赋值为5 |
+= |
a += 3 |
a = a + 3 |
-= |
a -= 2 |
a = a - 2 |
*= |
a *= 2 |
a = a * 2 |
/= |
a /= 2 |
a = a / 2 |
int a = 10;
a += 5; // a变成15
a *= 2; // a变成30
3.3 比较运算符(返回true/false)
| 运算符 | 含义 |
|---|---|
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
cout << (5 == 5) << endl; // 1 (true)
cout << (5 != 3) << endl; // 1 (true)
cout << (5 > 10) << endl; // 0 (false)
3.4 逻辑运算符
| 运算符 | 含义 | 示例 |
|---|---|---|
&& |
且 | (5>3) && (2<4) → true |
| ` | ` | |
! |
非 | !(5==3) → true |
bool isAdult = (age >= 18);
bool hasTicket = true;
if (isAdult && hasTicket) {
cout << "可以入场!" << endl;
}
🔄 第四章:流程控制 —— 让程序“做决定”
4.1 if-else 语句:条件判断
#include <iostream>
using namespace std;
int main() {
int score = 85;
if (score >= 90) {
cout << "优秀!" << endl;
}
else if (score >= 70) {
cout << "良好!" << endl;
}
else {
cout << "加油!" << endl;
}
return 0;
}
🔍 语法结构:
if (条件) {
// 条件为真时执行
} else if (另一个条件) {
// 第二个条件为真时执行
} else {
// 都不满足时执行
}
4.2 switch 语句:多分支选择
适用于等值判断(比如菜单选择)
int choice = 2;
switch (choice) {
case 1:
cout << "你选择了苹果" << endl;
break;
case 2:
cout << "你选择了香蕉" << endl;
break;
case 3:
cout << "你选择了橙子" << endl;
break;
default:
cout << "无效选择" << endl;
break;
}
⚠️ 注意:
- 每个
case后面要加break;,否则会“穿透”执行下一个case。 default是可选的,表示“其他情况”。
4.3 for 循环:重复执行
// 打印1到5
for (int i = 1; i <= 5; i++) {
cout << i << " ";
}
// 输出:1 2 3 4 5
🔍 语法:
for (初始化; 条件; 更新) {
// 循环体
}
i++表示i = i + 1
4.4 while 循环:条件满足就继续
int i = 1;
while (i <= 5) {
cout << i << " ";
i++;
}
💡 区别:
for适合已知次数的循环while适合未知次数,靠条件判断
4.5 do-while 循环:先做一次,再判断
int i = 1;
do {
cout << i << " ";
i++;
} while (i <= 5);
💡 特点:
- 至少执行一次,即使条件不满足。
📦 第五章:函数 —— 代码的“工具箱”
5.1 什么是函数?
-
通俗解释: 函数就像一个“工具”,你给它输入(参数),它帮你处理并返回结果(返回值)。
-
例子:
int add(int a, int b) {
return a + b;
}
5.2 定义与调用函数
#include <iostream>
using namespace std;
// 函数定义:计算两数之和
int add(int num1, int num2) {
int result = num1 + num2;
return result;
}
int main() {
int x = 5, y = 3;
int sum = add(x, y); // 调用函数
cout << "和为:" << sum << endl;
return 0;
}
🔍 语法:
返回类型 函数名(参数列表) {
// 函数体
return 返回值;
}
5.3 无返回值函数(void)
void greet(string name) {
cout << "你好," << name << "!" << endl;
}
int main() {
greet("小明"); // 输出:你好,小明!
return 0;
}
void表示“无返回值”。
🧩 第六章:数组 —— 批量存储数据
6.1 一维数组
// 定义一个能存5个整数的数组
int scores[5] = {85, 92, 78, 96, 88};
// 访问元素(下标从0开始)
cout << scores[0] << endl; // 第一个:85
cout << scores[4] << endl; // 最后一个:88
// 遍历数组
for (int i = 0; i < 5; i++) {
cout << "第" << i+1 << "个成绩:" << scores[i] << endl;
}
⚠️ 注意:
- 数组大小必须是常数,不能是变量(除非用动态数组)。
- 下标从
0开始,最大是大小-1。
🧠 第七章:指针(进阶,可先理解概念)
7.1 什么是指针?
- 通俗解释: 指针是一个“地址”,它存储的是变量在内存中的位置,而不是变量本身。
int age = 20;
int* ptr = &age; // ptr指向age的地址
cout << "age的值:" << age << endl; // 20
cout << "age的地址:" << &age << endl; // 类似 0x7fff...
cout << "ptr的值:" << ptr << endl; // 同上
cout << "ptr指向的值:" << *ptr << endl; // 20(解引用)
🔑 关键符号:
&:取地址*:解引用(取指针指向的值)
🧱 第八章:结构体(自定义数据类型)
struct Student {
string name;
int age;
double score;
};
int main() {
Student s1;
s1.name = "李四";
s1.age = 19;
s1.score = 87.5;
cout << s1.name << " 年龄:" << s1.age << " 成绩:" << s1.score << endl;
return 0;
}
struct可以把多个不同类型的数据组合在一起。
📚 学习路线建议(小白版)
| 阶段 | 内容 | 建议时间 |
|---|---|---|
| 第1周 | 环境搭建、Hello World、变量、数据类型 | 5-7天 |
| 第2周 | 运算符、if/else、循环 | 5-7天 |
| 第3周 | 函数、数组 | 5-7天 |
| 第4周 | 指针、结构体、综合练习 | 7-10天 |
🎯 最后建议
- 每天动手写代码,哪怕只有10行。
- 不要死记硬背,理解逻辑更重要。
- 遇到错误别怕,编译器报错是你的“老师”。
- 多做小项目:如计算器、学生成绩管理系统。
- 善用搜索引擎:
C++ 如何定义数组、cout 不换行怎么办。
✅ 你已经掌握了C++的核心骨架!
接下来可以学习:
- 面向对象编程(类与对象)
- STL(标准模板库)
- 文件操作
- 数据结构与算法
📌 本文总结:这是一份从零开始、循序渐进、代码齐全的C++学习框架,专为小白设计。只要按步骤学习并动手实践,你一定能学会C++!
🌟 记住:每一个编程高手,都是从
Hello, World!开始的。
祝你学习顺利,早日成为C++高手!💪
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)