目录
18.1 argc
18.2 argv[ ]
18.3 envp[ ]
18.4 总结
main(int argc, char *argv[ ], char *env[ ]);
以前老是搞不明白那个argc!=2是什么意思,那个argv[ ]为什么不从【0】开始而是从【1】开始
现在好了
18.1 argc
argc 是 argument count的缩写,表示传入main函数的参数个数;
18.2 argv[ ]
argv 是 argument vector 的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串 … argv[argc]为NULL。
在程序中, 一旦定义要输入参数 argv, 那么在运行程序时, 就需要传入对应的参数,这里相应的介绍传入参数的方法.
输入传入参数,以空格分隔,之后回车。
18.3 envp[ ]
env[ ]的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量,value 为ENVVAR的对应值。
18.4 总结
argc, argv,env是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。
再配一段助消化的代码
#include <stdio.h>
int main(int argc,char* argv[])
{
while(argc>0)
{
argc--;
printf("%s\n",*argv);
argv++; /*指向下一条参数*/
}
}
看,通俗易懂吧