Appearance
C++ 基础:程序的标准结构
编写 C++ 程序,本质上就是给计算机下达一套精确的指令。但计算机非常严格,它不认识人类的自然语言,只接受特定格式的代码。
因此,在我们正式开始写逻辑之前,必须先搭建好 C++ 程序的“标准骨架”。
1. 骨架长什么样?
几乎所有的 C++ 程序,最初始的形态都是这样的:
cpp
#include <iostream>
using namespace std;
int main() {
return 0;
}看起来有很多陌生的英文单词,没关系,我们逐行拆解。
2. 头文件:引入工具库
代码的第一行是 #include <iostream>。
include 是“包含”的意思。你可以把它理解为向系统申请引入预先写好的代码库(工具箱)。 例如,接下来我们要让程序在屏幕上输出结果,就需要用到专门负责输入输出的工具,而 iostream 正是包含这些工具的库。 拓展:iostream 其实是 input output stream(输入输出流)的缩写。
竞赛核心技巧! C++ 拥有极其庞大的标准库体系,有的负责数学计算,有的负责字符串处理。如果每次做题都要去记忆该引入哪个专门的头文件,效率会非常低。 因此,在信奥赛 (NOIP/OI) 和 GESP 考级中,我们通常会直接使用万能头文件,它在底层一次性打包了绝大多数我们会用到的标准库。它长这样:
cpp
#include <bits/stdc++.h>以后在编写任何竞赛代码的第一行,直接敲上这个万能头文件即可。
3. 命名空间:防止命名冲突
第二行是 using namespace std;。
这句话的作用是声明使用标准命名空间。 原理很简单:在大型项目中,不同的开发者可能会给不同的变量或函数取相同的名字。为了防止“名字打架”,C++ 引入了命名空间的概念。这就好比现实中有很多人叫“张三”,为了区分,我们要加上前缀变成“三年二班的张三”。 加上这句代码,就相当于我们在开头跟编译器约定好了一个默认的“班级”,后续调用标准库里的工具时,就不需要再繁琐地添加 std:: 这样的前缀了。
注意:写完头文件后,紧接着换行写上这一句,并且千万别忘了末尾的分号 ; !
4. 主函数:程序的唯一入口
接下来是代码的核心执行区:
cpp
int main() {
return 0;
}main 即“主要的”。int main() 被称为主函数。
无论你的代码工程有多么庞大,包含多少个文件,操作系统在运行你的程序时,永远只会去寻找 main 函数,并严格从它后面的左大括号 { 开始,自上而下逐行执行。
因此,我们未来要编写的所有控制逻辑、计算公式和输出指令,全部都要写在左大括号 { 和 return 0; 之间。
深入理解:return 0; 代表什么?它是程序执行完毕后,向操作系统返回的一个状态码。返回 0 代表程序正常结束,没有发生任何异常情况。
5. 完整的标准模板
把以上部分组合起来,就是我们每次新建代码文件后,必须立刻敲出来的标准模板:
cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
// 程序的入口。接下来要学习的 cout 输出指令,就写在这个位置。
return 0;
}注:在 C++ 中,// 后面的文字称为“单行注释”,它是写给程序员自己或同伴看的备注,编译器在运行时会直接忽略它。
6. 动手实践
纸上得来终觉浅,请完成以下热身:
md
1. 打开左下角的“💻 运行代码”沙盒,清空里面默认的代码。
2. 纯靠记忆,将 C++ 的标准模板盲打一遍。
3. 排错检查:头文件的尖括号 `< >` 是否处于英文半角状态?`using namespace std` 末尾是否加了分号?主函数是否使用了英文大括号 `{ }`?