第一个 C++ 程序详解
一、改进后的第一个程序
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!\n";
return 0;
}Code language: PHP (php)
二、程序结构逐行讲解
1. #include <iostream> 头文件与预处理指令
include 是预处理指令。
作用:在编译之前,把 iostream 文件中的代码插入到当前指令所在位置。
iostream 是头文件(header file),声明了输入输出相关的类、对象和函数。因为通常放在程序开头,所以称为”头文件”。
没有它,就无法使用 cout、cin 等输入输出功能。
注意:i 表示 input,o 表示 output,stream 表示流。合起来 iostream 即输入输出流。
2. using namespace std 命名空间指令
std 是 C++ 标准库所在的命名空间(namespace)。
cout、cin、endl 等都定义在 std 中。
加上这句后,就可以省略 std:: 前缀:
- 有这行代码时写:cout << “Hello”;
- 没有这行代码时写:std::cout << “Hello”;
命名空间的详细作用在后续章节专门讲解。
3. int main() 主函数
main 是主函数名,是程序的唯一入口。
一个 C++ 程序必须有且只有一个 main 函数。
int 表示 main 函数的返回值类型,返回给操作系统。
当用户运行 .exe 文件时,操作系统调用 main 函数。
4. 函数体 { … }
函数体用一对大括号 {} 包围。
函数是 C++ 程序中最小的功能单位。
main 函数体中的代码,就是程序启动后要执行的任务。
5. cout << “Hello World!\n” 输出语句
cout 是 C++ 系统预定义的输出流对象,表示标准输出设备(通常是显示器)。
<< 是输出运算符,作用是将右侧的内容输出到左侧的输出流对象。
“Hello World!\n” 是字符串常量,\n 是换行符,表示输出后换行。
等价写法(使用 endl):
cout << "Hello World!" << endl;Code language: JavaScript (javascript)
注意:endl 也是换行,但还会刷新输出缓冲区,效率略低于 \n。
6. return 0 函数返回
退出 main 函数。
return 0; 表示程序正常结束。
返回给操作系统:0 表示正常结束,非 0 表示异常结束。
三、C++ 程序的基本规则
程序由函数组成,main 是程序执行的起点。
语句以分号 ; 结尾,每条语句必须以分号结束。
源文件后缀为 .cpp。
经过编译和链接后生成可执行文件(.exe)。
四、从源程序到可执行程序的过程
源程序(.cpp) → 编译 → 目标文件(.obj) → 链接 → 可执行文件(.exe)
五、小结
- include <iostream>:引入输入输出功能
- using namespace std;:简化标准库使用
- main():程序入口
- cout << … :向屏幕输出内容
- return 0;:程序正常结束
- C++ 程序必须包含一个 main 函数
六、常见疑问解答
Q1:为什么 main 函数前面是 int?
因为 C++ 标准规定 main 必须返回 int,返回给操作系统表示程序运行状态。
Q2:\n 和 endl 有什么区别?
\n 只换行;endl 换行并刷新缓冲区,性能略有差异。
Q3:不写 return 0; 可以吗?
在 main 函数中可以省略,编译器会默认加上 return 0;,但建议显式写出,养成好习惯。