第一个 C++ 程序:Hello World 每一行在干嘛?
程序全貌
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
这个程序只做一件事:输出 Hello, World!。但五句代码各有分工,是后续所有程序的基本骨架。
逐行拆解
#include <iostream> — 引入输入输出功能。cout 不是语言内置的词汇,它由 iostream 头文件提供(头文件的原理见第 3 课)。
using namespace std — 有它才能直接写 cout。原理见第 4 课,本课先记住写法。
int main() { — main 是程序的入口。程序启动后第一个执行的位置永远是 main,与代码书写顺序无关。花括号内是 main 的函数体。
cout << "Hello, World!" << endl; — cout 是输出工具,<< 表示把右边的内容送到输出,endl 表示换行。句尾分号是一句语句结束的标记。
return 0; — 程序正常结束。0 是返回给操作系统的状态码,代表成功。
可视化观察
在 CppStudio 中打开本课示例,点击播放:
- 流程图「开始 → main」首先高亮——程序从 main 开始,而不是从第一行代码开始;
- 执行 cout 时,输出区出现
Hello, World!; - 执行 return 0,流程图「结束」节点亮起,程序终止;
- 此时变量监视区为空——本程序没有定义任何变量,监视区将在下一章变量中首次出现内容。
常见错误
- 漏写分号:编译报
expected ';' after expression,初学者最高频的编译错误; - main 拼错(如 mian):编译器找不到程序入口,报链接错误;
- 花括号不配对:每个
{必须有对应的},缺失会导致整段报错。
以上错误都可以在示例中故意制造并观察报错,刷新页面即可恢复原代码。
下一课:从代码到运行,中间到底发生了什么。
常见问题
C++ 程序从哪一行开始执行?
从 main 函数的第一行开始。main 是程序的入口,程序启动后先进 main,依次执行其中的语句,执行到 return 就退出。
cout 和 endl 分别是什么?
cout 是标准库提供的输出工具,<< 表示把右边的内容送到输出;endl 表示换行。cout << "Hello" << endl; 即输出 Hello 并换行。
return 0 是什么意思?
表示程序正常结束。0 是返回给操作系统的状态码,0 代表成功。入门阶段记住 main 末尾写 return 0 即可,返回值的完整语义在函数章讲。
#include <iostream> 可以删掉吗?
不可以。cout 由 iostream 头文件提供,删掉后编译器不认识 cout,会报 use of undeclared identifier。可以在本课示例里删掉它再运行,观察报错内容。