# main 函数结构

URL: https://caijiao.org/cpp/intro/main-func
Source: docs/cpp/intro/main-func.md
Description: 本节介绍 C++ 程序的入口函数 main 的结构与基本语法，帮助读者理解每一个 C++ 程序是如何启动和执行的。

在 C++ 中，`main` 函数是程序的入口点。每个 C++ 程序都必须包含一个 `main` 函数，程序的执行从该函数开始。

## 基本语法

```cpp
#include <iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}
````

### 说明：

* `#include <iostream>`：引入输入输出库。
* `int main()`：定义主函数，返回类型为 `int`。
* `std::cout << ...`：输出语句。
* `return 0;`：程序正常结束，返回操作系统 0 表示成功。

## main 函数的返回值

`main` 函数返回一个整数，一般为 `0`，表示程序正常结束。如果返回非零值，通常表示错误或异常。

```cpp
int main() {
    // ...
    return 1; // 表示程序以错误状态退出
}
```

## 带参数的 main 函数

C++ 允许 `main` 函数接收参数，用于获取命令行输入：

```cpp
int main(int argc, char* argv[]) {
    // argc：参数数量
    // argv：参数数组（每个参数是字符串）
}
```

### 示例：

```cpp
#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << "参数个数: " << argc << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << "参数 " << i << ": " << argv[i] << std::endl;
    }
    return 0;
}
```

运行示例：

```bash
./program hello world
```

输出：

```
参数个数: 3
参数 0: ./program
参数 1: hello
参数 2: world
```

## 小结

* `main` 函数是程序的入口。
* 必须返回 `int` 类型。
* 可以带参数，也可以不带。
* 函数体内通常包括程序的核心逻辑。

掌握 `main` 函数的基本结构，是编写 C++ 程序的第一步。
