main函数参数

news/2024/7/8 3:45:29

参考:Where Does GCC Look to Find its Header Files?

 

命令行参数 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

 

 

转载于:https://www.cnblogs.com/kelamoyujuzhen/p/9690366.html


http://lihuaxi.xjx100.cn/news/236994.html

相关文章

Rokid webhook 指南 手把手教你做个懒人

若琪用户 Amadeus 在社区里分享过很多视频。当你进门10秒后还未关闭房门&#xff0c;若琪会一直报警提醒&#xff1b;当你走进门后将门反锁的那一刻&#xff0c;若琪会为你播报今天的天气、为你播放设定的轻音乐。 看到这些视频中对传感器、智能情景的熟练运用&#xff0c;你很…

区块链中的“智能合约”有何应用?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如刺金般闪耀的区块链时代&#xff0c;投资者的热潮还将持续升温&#xff0c;与此同时金融的大佬已经开始注意到区块链应用落地场景的实现&#xff…

软工实践原型设计——PaperRepositories

软工实践原型设计——PaperRepositories 写在前面 本次作业链接队友&#xff08;031602237吴杰婷&#xff09;博客链接pdf文件地址原型设计地址(加载有点慢...)结对成员:031602237吴杰婷 & 031602636许舒玲原型设计工具:Axure RP 8PSP表格 PSP3.1Personal Software Process…

Xshell5中常用linux服务器命令集合

简易版&#xff1a;http://www.zhimengzhe.com/linux/84546.html 详细版&#xff1a;http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page4转载于:https://www.cnblogs.com/keye/p/8982440.html

以太坊核心概念

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 以太坊虚拟机&#xff08;EVM&#xff09; 以太坊虚拟机&#xff08;EVM&#xff09;是以太坊中智能合约的运行环境。它不仅被沙箱封装起来&#…

vue项目踩坑

由于上一个小项目写的很次&#xff0c;这一次打算好好地写一个博客系统&#xff0c;最近刚刚结束了管理员的管理端的编写。其中遇到了很多小坑。 其实只能说自己vue用的不是特别熟练吧。很多问题都有些想当然了&#xff0c;实现起来发现了很多的问题。简单的记录几个我自己认为…

为什么以太坊能成为区块链2.0的代表之作?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链的学习进入到第四天&#xff0c;前三天学习比特币&#xff0c;分别从比特币的前世、货币属性和背后的区块链技术学习。 比特币是区块链的1…

​2018你不得不看的国内CRM软件排行榜

2018你不得不看的国内CRM软件排行榜短短几年时间&#xff0c;CRM在中国的发展就已经非常迅猛&#xff0c;现在已经成为了管理软件增长最快的产业。在我们总结的CRM软件排行榜中&#xff0c;腾讯企点的CRM软件赫然摆在前列。而CRM在中国中小企业已经突破千万家&#xff0c;占全国…