??? note "什么是 include?"
`#include` 其实是一个预处理命令,意思为将一个文件“放”在这条语句处。也就是说,在编译时,编译器会“复制” `iostream` 头文件中的内容,“粘贴”到 `#include <iostream>` 这条语句处。这样,你就可以使用 `iostream` 中提供的 `std::cin` 、 `std::cout` 、 `std::endl` 等对象了。
- 一般来说,应当根据你需要使用的 C++ 内置的函数、对象来确定你要 `#include` 哪些头文件。但如果你 `#include` 了多余的头文件,也不会造成什么影响(可能会略微减慢编译速度)。
+ 一般来说,应当根据你需要使用的 C++ 内置的函数、对象来确定你要 `#include` 哪些头文件。但如果你 `#include` 了多余的头文件,也几乎不会造成什么影响。
可以 `#include` 自己写的头文件吗?答案是,可以。
??? note "什么是 main 函数?"
可以理解为程序运行时就会执行 `main` 函数中的代码。
- 实际上, `main` 函数是由系统或外部程序调用的。如,你在 cmd 中调用了你的程序,也就是调用了你程序中的 `main` 函数。
+ 实际上, `main` 函数是由系统或外部程序调用的。如,你在 cmd 中调用了你的程序,也就是调用了你程序中的 `main` 函数(在此之前先完成了全局变量的构造)。
最后的 `return 0;` 表示程序运行成功。默认情况下,程序结束时返回 0 表示一切正常,否则表示错误代码。这个值返回给谁呢?其实就是调用你写的程序的系统或外部程序,它会在你的程序结束时接收到这个返回值。