目录
什么是main函数
C语言中的主函数固定名为:main(),每个系统中必须有一个,且只能有一个。它 是第一个运行的函数。
一般情况下,main()写在文件的最后面,其他被调用的函数放在前面,这样定义函数之前可以不加声明,如果放在主函数之后,则必须先声明,再定义,再被调用。
mian()的三种形式
(1) 函数没有参数,返回值为 int 类型。
int main( void ) { /* … */ }
(2) 函数有两个参数,类型分别是 int 和 char**,返回值是 int 类型。
int main( int argc, char *argv[ ] ) { /* … */ }
这两种定义方式都符合 C 语言标准。除此之外,许多 C 的实现版本还支持第三种、非标准语法的定义方式:
int main( int argc, char *argv[ ], char *envp[ ] ) { /* … */ }
main()函数的参数
参数 argc 和 argv(也可以根据需要另外命名),代表了程序的命令行参数。它们的作用如下:
(1) argc(全称为 argument count)的值为 0 或者为命令行中启动该程序的字符串的数量。程序本身的名称也算作该字符串,也要计算进去。
(2) argv(全称为 arguments vector)是一个 char 指针数组,每个指针都独立的指向命令行中每个字符串:
数组中元素的个数,比 argc 的值多 1;最后一个元素 argv[argc] 是空指针。
如果 argc 大于 0,那么第一个字符串,argv[0],就是程序本身的名称。如果运行环境不支持程序名称,那么 argv[0] 为空。
如果 argc 大于 1,从字符串 argv[1] 到 argv[argc-1] 包含该程序命令行参数。
(3) envp(全称为 environment pointer)在非标准的、有 3 个参数的 main()函数版本中,是一个指针数组,每个指针都指向组成程序环境的一个字符串。通常,这个字符串的格式是“名称=值”。在标准 C 语言中,可以利用函数 getenv()获取得这些环境变量。