main函数的本质
C语言中main函数称之为主函数
一个C程序是从main函数开始执行的
main函数是操作系统调用的函数
操作系统总是将main函数作为应用程序的开始
操作系统将main函数的返回值作为程序的退出状态
下面的 main 函数定义都正确吗?
A.
main()
{
}
B.
void main()
{
}
C.
int main()
{
}
D.
int main()
{
return 0;
}
编译运行后, ABCD都未报错
问:
为什么C编译器支持这么多不同的 main 函数原型?
答:
各编译器厂商为了更好的推广编译器, 使得编译器兼容了一些不规范的写法。正确的main函数原型为 D
main函数的参数
程序执行时可以向main函数传递参数
———————————————————— |
---|
int main() |
int main(int argc) |
int main(int argc, char* argv[]) |
int main(int argc, char* argv[], char* env[]) |
argc —— 命令行参数个数
argv —— 命令行参数数组
env —— 环境变量数组
gcc编译器的常见用法:
gcc a.c b.c c.c | - |
---|---|
argc | 4 |
argv[0] | gcc |
argv[1] | a.c |
argv[2] | b.c |
argv[3] | c.c |
/* 测试代码 */
#include <stdio.h>
int main(int argc, char* argv[], char* env[])
{
int i = 0;
for(i=0; i<argc; i++)
{
printf("%s\n", argv[i]);
}
printf("\n\n\n");
for(i=0; env[i]!=NULL; i++)
{
printf("%s\n", env[i]);
}
return 0;
}