我只想彻底学习基础知识以及一些简单的代码所指的内容。
我能够在以下位置找到简短的描述 https://www.dummies.com/programming/c/looking-at-the-c-language/但我认为我不能完全理解它。
它是程序的起点。 根据C 标准的 5.1.2.2.1 程序启动:
程序启动时调用的函数名为
main
。这 实现没有声明此函数的原型。它应该是 使用返回类型int
且不带参数定义:int main(void) { /* ... */ }
或带有两个参数(此处称为
argc
和argv
,尽管任何 可以使用名称,因为它们是它们所在的函数的本地名称 声明):int main(int argc, char *argv[]) { /* ... */ }
或等效项;或以某种其他实现定义的方式。
如果声明了,则主函数的参数应遵循 以下约束:
argc
的值应为非负数。argv[argc]
应为空指针。- 如果
argc
的值大于零,则argv[0]
到argv[argc-1]
(含)的数组成员应包含指向 字符串,由主机赋予实现定义的值 程序启动前的环境。目的是供应给 在从其他地方启动程序之前确定的程序信息 在托管环境中。如果主机环境无法 提供带有大写和小写字母的字符串, 实现应确保在 小写。- 如果
argc
的值大于零,则argv[0]
指向的字符串表示程序名;argv[0][0]
应为 如果主机中提供程序名称不可用,则为空字符 环境。如果argc
的值大于 1,则字符串 指向argv[1]
通过argv[argc-1]
代表程序 参数。argc
和argv
参数以及argv
数组指向的字符串应可由程序修改,并保留其 程序启动和程序终止之间的最后存储值。