程序笔记   发布时间:2022-07-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了main的参数argc、argv和envp大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1.有时会见到这样的主函数,十分好奇里面的参数argc、argv和envp代表什么@H_489_2@

int@H_489_2@ main(int@H_489_2@ argc,char@H_489_2@ *argv[],char@H_489_2@*envp[])
{
    @H_489_2@return@H_489_2@ 0@H_489_2@;
}@H_489_2@

查阅资料,argc和argv中的arg指的是"参数",

其中,argc为整数,用来统计运行程序时送给main函数的命令行参数的个数:

argv加上*与[ ],成为*argv[ ],表示字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数。

envp则存放了当前程序运行环境的参数。

是不是还不太明白?原来argc、argv、envp这两个参数一般在用命令行编译程序时有用。当然在实际开发中,envp参数的应用场景不多,各位了解一下就行了。

也就是说在如今各版本的vs编译器中,main()函数带或者不带argc,argv,返回值为void或不为void,都是合法的。

最后总结一下:

int argc表示命令行字串的个数。

char *argv[ ] 表示命令行参数的字符串。

envp存放当前程序运行环境的参数。

2.那么我们还是好奇这两个参数到底是什么,不妨用下面的代码打印一下看看

#include <iostream>

using@H_489_2@ namespace@H_489_2@ std;

@H_489_2@int@H_489_2@ main(int@H_489_2@ argc, char@H_489_2@* argv[],char* envp[])
{
    cout @H_489_2@<< argc << endl;

    cout @H_489_2@<< argv[0@H_489_2@] << endl;  cout << envp[0] << endl;  getchar();

    @H_489_2@return@H_489_2@ 0@H_489_2@;
}@H_489_2@

运行结果:

main的参数argc、argv和envp

可以看到argc的值为1,argv是程序生成的exe文件地址

也就是在命令行输入一行命令,该命令是执行这个exe文件

大佬总结

以上是大佬教程为你收集整理的main的参数argc、argv和envp全部内容,希望文章能够帮你解决main的参数argc、argv和envp所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。