argc、argv[ ]、envp[ ]

目录

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++;   /*指向下一条参数*/
    }
}

看,通俗易懂吧

发布了61 篇原创文章 · 获赞 3 · 访问量 1623

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/103997516