关于main函数中argc和argv的简单介绍
2015-07-07 22:17
429 查看
刚刚学习C++的朋友可能会遇到main函数的参数设置问题,不理解为什么main函数也要参数。
main函数的参数通常这样设置:
int main(int argc,char** argv)
argc 是 argument count 的简称,是传入参数的个数,argv是二维的字符串指针,是argument variable的简称,实际上这个就是一个字符串数组。
main函数是由执行整个exe文件的时候调用的,我们如果在cmd下运行程序exe,或者写bat脚本文件去调用exe,就可能会用到参数传入的问题,这里面的
参数就是这样用。
下面举个例子:
这段代码是输出传入参数的个数,还有具体什么参数。
整个程序编译出来的exe叫做test.exe
cmd下运行得出的结果是:
可以看到,执行test.exe 这个本身是一个字符串。
加上传入的参数str1 和 str2,总共有3个字符串。
同理,bat脚本调用的使用也是这样,使用的时候注意。
不要以为test.exe这个不是传入参数。
所以代码里使用时候一般不用程序名字的话,是从argv[1] 开始。
main函数的参数通常这样设置:
int main(int argc,char** argv)
argc 是 argument count 的简称,是传入参数的个数,argv是二维的字符串指针,是argument variable的简称,实际上这个就是一个字符串数组。
main函数是由执行整个exe文件的时候调用的,我们如果在cmd下运行程序exe,或者写bat脚本文件去调用exe,就可能会用到参数传入的问题,这里面的
参数就是这样用。
下面举个例子:
#include<cstdio> #include<cstring> int main(int argc,char** argv) { printf("there are %d strings\n",argc); for(int i = 0;i < argc;i++) printf("%s\n",argv[i]); }
这段代码是输出传入参数的个数,还有具体什么参数。
整个程序编译出来的exe叫做test.exe
cmd下运行得出的结果是:
可以看到,执行test.exe 这个本身是一个字符串。
加上传入的参数str1 和 str2,总共有3个字符串。
同理,bat脚本调用的使用也是这样,使用的时候注意。
不要以为test.exe这个不是传入参数。
所以代码里使用时候一般不用程序名字的话,是从argv[1] 开始。
相关文章推荐
- [Leetcode]-Contains Duplicate HashTbale重解
- Available Bandwidth paper(3)
- Contains Duplicate II
- 【LeetCode】219. Contains Duplicate II
- Contains Duplicate II
- 实战weblogic集群之创建domain,AdminServer
- Contains Duplicate
- INSTALL_PARSE_FAILED_NO_CERTIFICATES 解决办法
- 【LeetCode】217. Contains Duplicate (2 solutions)
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 进程控制 [fork() exec() wait() waitpid()]
- AIX Study之--AIX网卡配置管理(ent0、en0、et0)
- Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or d.......
- Main.storyboard
- AIX Study之--AIX网卡配置管理(ent0、en0、et0)
- 关于[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]找不到指定文件的解决办法
- LeetCode Container With Most Water
- WSAIoctl
- AIX Study之--用户访问系统资源限制配置
- AIX Study之--AIX用户资源访问限制配置