#edu020. 第 1 节 C++程序框架

第 1 节 C++程序框架

编写调试完整的 C++ 程序,在竞赛中最常见的是 Dev-C++ 和 VSCode 两款集成开发环境. Dev-C++ 配置比较简单,下载安装好之后,点击菜单“文件”,选择“新建”,“源程序”,创建一个空白的 C++ 程序。

输入以下样例程序 "A+B",点击菜单“运行”,选择“编译运行”。

#include <iostream>  		//包含 iostream 头文件 
using namespace std; 		//使用 std 命名空间 
int main() 					//主函数 
{
  int a,b;          //定义 a,b 两个变量
  cin>>a>>b;        //输入两个整数
  cout<<a+b;        //输出结果
  return 0;					// 主函数 返回0 
}

代码框架

主函数是 C++ 运行的入口,基本框架如下:

#include <bits/stdc++.h>  
using namespace std; 		
int main() 					//主函数 
{
  // write code here
  return 0;				
}

初学者可以将这个代码框架记下来

接下来我们解释一下 "A+B" 中的含义

1. 什么是 include ?

#include 其实是一个预处理命令,意思为将一个文件「放」在这条语句处,被「放」的文件被称为头文件。在编译时,编译器会「复制」头文件 中的内容,「粘贴」到 #include 这条语句处。可以在程序安装目录中找到 iostream 这个文件。

程序后面使用 cincout 等对象,就是出自 这个头文件。C++ 中有大量头文件,比如 、、、、 等,使用不同函数和类,就要包含对应的头文件。

在 C++ 编程中,<bits/stdc++.h> 是一个非标准的头文件,它被广泛用于包含几乎所有的C++标准库。这个头文件在编写代码时提供了极大的便利,因为它允许程序员不必单独引入每个库,在编程竞赛中,可以节省时间。因此,在编程竞赛中我们经常使用 <bits/stdc++.h> 这个头文件,节省时间和记忆负担。

2. 什么是 using namespace std?

std 是 C++ 标准库所使用的命名空间。使用命名空间是为了避免重名。不同文件和项目中,可能会出现相同的变量名、函数名,C++ 通过命名空间,避开重名这种问题,约定在同一个命名空间下,变量名、函数名不冲突。

3. 什么是主函数 main()

可以简单理解,程序运行的时候从主函数开始运行。实际上,main() 函数是由系统或外部程序调用的。

注意,主函数框架 main()(){} 是函数格式的一部分,不能缺省。() 中是参赛列表,{} 表示函数中执行的语句部分。

最后的 return 0; 表示程序运行成功。默认情况下,程序结束时返回 0 表示一切正常,否则返回值表示错误代码。在 C 或 C++ 中,程序的返回值不为 0 会导致运行时错误(RE)

4. 输入输出

样例程序 "A+B",cin>>a>>b;是输入语句,表示从键盘上读入两个值;cout<<a+b;是输出语句,表示输出表达式的值。

除流控制输入输出 cin/cout, scanf/prinf 是 C 语言提供的函数,大多数情况下,它们的速度比 cincout 更快,并且能够方便地控制输入输出格式,具体使用方式参加之后的章节。

5. 代码注释

在 C++ 代码中,注释有两种写法:

行内注释

以 // 开头,行内位于其后的内容全部为注释。

注释块

以 /* 开头,*/ 结尾,中间的内容全部为注释,可以跨行。

注释对程序运行没有影响,可以用来解释程序的意思,还可以在让某段代码不执行(但是依然保留在源文件里)。

在工程开发中,注释可以便于日后维护、他人阅读。

在 OI 中,很少有人写许多注释,但注释可以便于在写代码的时候理清思路,或者便于日后复习。而且,如果要写题解、教程的话,适量的注释可以便于读者阅读,理解代码的意图。希望各位同学能养成写注释的好习惯。