如何理解主函数main中变量(int argc,char *argv[])的含义

每一个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()函数接受命令行参数还有一个重要作用:编写多进程程序,当主进程建立一个子进程,往往都是通过通过命令行参数进行控制的。

原文地址:https://www.cnblogs.com/mlgjb/p/8921588.html