在c++中int main()和int main(void)是等效的,但在c中让括号空着代表编译器对是否接受参数保持沉默。在c语言中main()省略返回类型也就相当说明返回类型为int型,不过这种用法在c++中逐渐被淘汰。虽然Void main()在很多系统都适用,但他毕竟不是标准的,所以应该避免这种用法 ### int main 和 int main(void) 的区别 在 C 和 C++ 编程语言中,`main` 函数作为程序的入口点,其定义方式对于理解程序的行为至关重要。尤其是在 C 和 C++ 中,`main` 函数的定义存在一定的差异,这涉及到函数的参数列表以及返回值类型。 #### C 与 C++ 中 main 函数的不同之处 1. **C 语言中的 main 函数**: - 在 C 语言中,`main` 函数可以定义为 `int main()` 或 `int main(void)`。 - 当使用 `int main()` 定义时,实际上意味着编译器对于是否接受参数持开放态度。这种情况下,`main` 函数可以接受或不接受参数。 - 当使用 `int main(void)` 定义时,明确表示 `main` 函数不接受任何参数。 - 如果 `main` 函数省略了返回类型,如 `main()`,则默认返回类型为 `int` 类型。但这种写法在现代 C 语言编程中并不推荐使用。 - `main` 函数的返回值类型通常为 `int`,用于指示程序退出状态。一般情况下,返回值为 0 表示程序正常结束;非零值表示异常退出。 2. **C++ 语言中的 main 函数**: - 在 C++ 中,`main` 函数通常定义为 `int main()` 或 `int main(void)`。 - `int main()` 和 `int main(void)` 在 C++ 中是等效的,都表示 `main` 函数不接受任何参数。 - 在 C++ 中,省略 `main` 函数的返回类型(如 `main()`)的做法已被废弃,应始终显式指定返回类型。 - `void main()` 的用法尽管在某些系统中仍然可行,但并非 C++ 标准的一部分,因此应当避免使用。 - `main` 函数的返回值类型同样为 `int`,用于指示程序的退出状态。返回 0 表示成功退出,非零值表示错误退出。 #### 详细说明 - **关于 `int main()` 与 `int main(void)`**:这两种定义方式在 C++ 中是完全等价的。而在 C 语言中,`int main()` 意味着编译器允许 `main` 函数接受参数,但实际上并不接受任何参数,这是一种遗留写法。相比之下,`int main(void)` 更加清晰地表明了 `main` 函数不接受任何参数。 - **关于 `main` 函数的返回值**:无论是 C 还是 C++,`main` 函数都应该有一个返回值,该返回值用于向操作系统报告程序的退出状态。通常情况下,返回 0 表示程序正常结束,而其他非零值则表示出现错误或其他异常情况。 - **关于 `void main()`**:虽然在某些编译器下 `void main()` 可能会被接受,但这并不是 C++ 的标准做法。C++ 标准规定 `main` 函数必须有返回值类型,通常是 `int` 类型。因此,建议始终使用 `int main()` 或 `int main(void)`。 - **关于 `main` 函数的执行流程**:当程序开始运行时,控制权会自动传递给 `main` 函数。在此函数内部,程序员可以编写代码来执行所需的任何操作。`main` 函数执行完毕后,会返回一个整数值给操作系统,指示程序的执行状态。 在 C 语言中,`main` 函数可以接受参数,但通常不会这样做,因此 `int main()` 和 `int main(void)` 被视为相同。而在 C++ 中,这两种定义是完全等效的,并且更倾向于使用 `int main(void)` 来明确表示 `main` 函数不接受任何参数。无论是在 C 还是 C++ 中,`main` 函数都应该有一个返回值,以便向操作系统报告程序的执行结果。
- fantastic贾2013-01-07讲解还行,但是感觉不权威。最好注明 出处。
- 粉丝: 4
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助