每一个C语言的初学者,都会注意到主函数main()里的两个参数,但是初学者一般不会去关注这两个参数的具体作用,下面我们就来介绍这两个参数的具体作用。
main()函数是控制台程序的入口,int main(int argc,char *argv[]) 是 UNIX 和 Linux 中的标准写法,而 int main() 只是 UNIX 及 Linux 默许的用法。
main()是可以接受参数的,也叫命令行参数,argc表示命令行参数的个数,argv等价于一个char型的二级指针,可用来存放若干个字符串。
很多人会问?main()函数接受参数有什么用呢?
我在vc++或者codeblocks里编写好了程序,点击编译运行就可以了,没看见要接受啥参数啊!
这是因为windows系统屏蔽了很多细节,用户看不到而已。
在Linux系统上编写C程序,编译生成.out文件,假设为a.out文件。如果我们要运行这个文件,需要输入命令:./a.out 。实际上这一行命令就是要传入到main()函数里的。
我们回过头来,在windows平台上编写一个C程序:
#include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]){ printf("%s ",argv[0]); return 0; }
点击编译执行按钮,输出:
大家可以看到控制台输出了可执行文件的路径。这与Linux系统其实是一样的,只不过Windows系统屏蔽了相关细节。
main()函数接受命令行参数还有一个重要作用:编写多进程程序,当主进程建立一个子进程,往往都是通过通过命令行参数进行控制的。