码迷,mamicode.com
首页 > 其他好文 > 详细

main函数参数

时间:2018-09-22 18:28:35      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:令行   view   environ   lib   字符串   onclick   命令行参数   hello   alt   

命令行参数 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("\n");
13     for(i=0;argv[i]!=NULL;i++)
14     {
15         printf("%s ", argv[i]);
16     }
17     printf("\n");
18     return 0;
19 }
View Code

执行结果

技术分享图片
[root@localhost ~]# gcc hello.c 
[root@localhost ~]# ./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\n", 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\n", environ[i]);
12     }
13     return 0;
14 }
View Code

 

 

main函数参数

标签:令行   view   environ   lib   字符串   onclick   命令行参数   hello   alt   

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9690366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!