写在最前面:
本篇博客所写代码,全部都依赖于Linux环境。
在开始之前,我们先问自己几个问题:
也许,我们没有见过main函数传参,但是main函数确实是可以传参的,而且有着非常广泛的使用。
main函数最多可以传3个参数:int argc,char *argv[],char *env[]
学过Linux相关命令的同学都知道:Linux同一个命令可以带不同的选项,不同的选项会产生不同的作用,如:
argv=可执行程序和命令行选项总数。
这个参数就有意思了哈,这是一个字符串指针数组。 数组大小是argc,最后一个元素为null。数组中存储着输入的指令和选项,
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[])
{
for(int i=0;i<argc;i++)
{
printf("%d:%s\n",i,argv[i]);
}
printf("%d",argc);
}
我们难道不好奇:操作系统是怎样解析出选项的吗?
在操作系统来,它把命令行输入的整体作为一个长字符串,然后根据选项之间的空格,把选项之间解析开。
数组中存放的是系统中的环境变量(环境变量就是一个字符串)的地址,数组最后一个元素为null。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[],char*env[])
{
int i=0;
while(env[i])
{
printf("%d:%s\n",i,env[i]);
i++;
}