---
slug: hello-world
lesson: 1
chapter: 1
chapterTitle: 程序
title: 第一个 C++ 程序：Hello World 每一行在干嘛？
description: 逐行拆解第一个 C++ 程序：#include 引入输出功能，main 是程序入口，cout 输出文字，return 0 表示正常结束。附可在线运行的示例，用动态流程图看清程序从启动到结束的每一步。
code: |
  #include <iostream>
  using namespace std;

  int main() {
      cout << "Hello, World!" << endl;
      return 0;
  }
faq:
  - q: C++ 程序从哪一行开始执行？
    a: 从 main 函数的第一行开始。main 是程序的入口，程序启动后先进 main，依次执行其中的语句，执行到 return 就退出。
  - q: cout 和 endl 分别是什么？
    a: cout 是标准库提供的输出工具，<< 表示把右边的内容送到输出；endl 表示换行。cout << "Hello" << endl; 即输出 Hello 并换行。
  - q: return 0 是什么意思？
    a: 表示程序正常结束。0 是返回给操作系统的状态码，0 代表成功。入门阶段记住 main 末尾写 return 0 即可，返回值的完整语义在函数章讲。
  - q: "#include <iostream> 可以删掉吗？"
    a: 不可以。cout 由 iostream 头文件提供，删掉后编译器不认识 cout，会报 use of undeclared identifier。可以在本课示例里删掉它再运行，观察报错内容。
---

<div class="answer">
第一个 C++ 程序共五句：#include 引入输出功能，using namespace std 先记住写法，
main 是程序入口，cout 把文字送到屏幕，return 0 表示正常结束。
运行模型：点击运行 → 进入 main → 执行 cout → 执行 return → 程序结束。
</div>

## 程序全貌

```cpp
#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 中打开本课示例，点击播放：

1. 流程图「开始 → main」首先高亮——程序从 main 开始，而不是从第一行代码开始；
2. 执行 cout 时，输出区出现 `Hello, World!`；
3. 执行 return 0，流程图「结束」节点亮起，程序终止；
4. 此时变量监视区为空——本程序没有定义任何变量，监视区将在下一章变量中首次出现内容。

## 常见错误

- **漏写分号**：编译报 `expected ';' after expression`，初学者最高频的编译错误；
- **main 拼错**（如 mian）：编译器找不到程序入口，报链接错误；
- **花括号不配对**：每个 `{` 必须有对应的 `}`，缺失会导致整段报错。

以上错误都可以在示例中故意制造并观察报错，刷新页面即可恢复原代码。

下一课：从代码到运行，中间到底发生了什么。
