main函数参数

Posted kelamoyujuzhen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了main函数参数相关的知识,希望对你有一定的参考价值。

命令行参数 VS 程序参数

./a.out 1 2 3 4 5 6

1 2 3 4 5 6是程序参数,是传给a.out这个程序处理的,main里面的argv来接收

./a.out 1 2 3 4 5 6完整的这一串才是命令行参数

代码演示

如下代码使用两种方式输出命令行参数

技术分享图片
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <unistd.h>
 4 
 5 int main(int argc, char **argv)
 6 {
 7     int i=0;
 8     for(i=0;i<argc;++i)
 9     {
10         printf("%s ", argv[i]);
11     }
12     printf("
");
13     for(i=0;argv[i]!=NULL;i++)
14     {
15         printf("%s ", argv[i]);
16     }
17     printf("
");
18     return 0;
19 }
View Code

执行结果

技术分享图片
[[email protected] ~]# gcc hello.c 
[[email protected] ~]# ./a.out 1 2 3 4 5 6
./a.out 1 2 3 4 5 6 
./a.out 1 2 3 4 5 6 
View Code

将命令行参数传递给main函数形参的过程

技术分享图片

main函数的第三个参数

很多人只知道main有2个参数,即argc,argv。实际上还有第三个参数environ

environ是个全局变量,与main函数的argv一样,指向的都是一个字符串指针数组。只不过,argv: 与命令行参数有关;environ:与环境变量表有关。

打印环境变量代码1,借助全局变量

技术分享图片
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <unistd.h>
 4 
 5 extern char **environ;
 6 int main(int argc, char **argv)
 7 {
 8     int i=0;
 9     
10     for(i=0;environ[i]!=NULL;i++)
11     {
12         printf("%s
", environ[i]);
13     }
14     return 0;
15 }
View Code

打印环境变量代码2,借助main的第三个参数

技术分享图片
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <unistd.h>
 4 
 5 int main(int argc, char **argv,char **environ)
 6 {
 7     int i=0;
 8     
 9     for(i=0;environ[i]!=NULL;i++)
10     {
11         printf("%s
", environ[i]);
12     }
13     return 0;
14 }
View Code

 

 

以上是关于main函数参数的主要内容,如果未能解决你的问题,请参考以下文章

main函数参数

jsp页面被tomcat引擎运行的时候组装成java片段,但是这些java片段怎么没有main方法作为程序的入口啊?

Java方法

java类的测试( main函数)

main主函数参数解析

在linux下怎么运行main函数