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 }
执行结果
[[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
将命令行参数传递给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 }
打印环境变量代码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 }
以上是关于main函数参数的主要内容,如果未能解决你的问题,请参考以下文章