初识argc和argv,对其用法甚是困惑,偶得大神“-牧野-”之总结,犹如醍醐灌顶,故转载分享如下,供更多博友学习。

argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针。第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个。

简单用法示例,新建工程键代码:

#include <iostream>
using namespace std;
void main(int argc,char *argv[])
{for(int i=0;i<argc;i++){cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;}system("pause");
}

argv是指向指针的指针,main函数的第二个参数“char *argv[]“也可以替换为 “char **argv“,两者是等价的。

在编译环境下按F5运行,输出如下:

可见,在没有参数传入的情况下,保存程序名称的第一个变量argv[0]依然存在。

传参数给main函数有两种方法,第一种方式是在编译环境中设置,以vs2012为例,右击项目—>属性—>配置属性—>调试—>命令参数,在命令参数中输入,每个参数之间用空格隔开。

之后点击确定并应用,运行之后显示如下:

第二种方式也是经常会用到的方式是通过命令提示符传入。首先需要打开命令提示符窗口,点击开始菜单在“搜索程序和文件”里输入命令“cmd”或者直接按快捷键 Windows+R,在弹出的对话框里输入“cmd”即可打开命令提示符窗口:

打开命令提示符窗口后需要输入生成的exe文件所在的完整路径,一个简便的方法是把exe文件直接拖入提示符窗口即可,之后输入传入参数,以空格分隔,之后回车,显示如下:

如果你坚持要手工输入完整路径的话,你会发现等你“Ctrl+C”路径后,在提示符窗口中按“Ctrl+V”却不能粘贴,这时候可以在窗口中右键单击一下试试,你会发现右键菜单里的粘贴功能还是有效的

下一个例子演示使用opencv显示一幅图片:

#include <iostream>
#include <core/core.hpp>
#include <highgui/highgui.hpp>using namespace std;
using namespace cv;void main(int argc,char **argv)
{Mat image=imread(argv[1]);imshow("Lena",image);waitKey();
}

注意读入的参数是argv[1],在命令提示符窗口运行:

最后说明一下:一般编译器默认使用argc和argv两个名称作为main函数的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名作为入参,效果是一样的:

#include <iostream>
#include <core/core.hpp>
#include <highgui/highgui.hpp>using namespace std;
using namespace cv;void main(int value,char **point)
{for(int i=0;i<value;i++){cout<<"argument["<<i<<"] is: "<<point[i]<<endl;}system("pause");
}

转自:https://blog.csdn.net/dcrmg/article/details/51987413

【C/C++】main函数之参数argc和argv含义及用法相关推荐

  1. C++ main函数中参数argc和argv含义及用法( argument count和 argument vector)

    rgc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写(注意:不是argument value的缩写,自己以前理解错了), ...

  2. (转)C++ main函数中参数argc和argv含义及用法

    原博地址:https://blog.csdn.net/dcrmg/article/details/51987413 argc 是 argument count的缩写,表示传入main函数的参数个数: ...

  3. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  4. C++ main函数中参数argc和argv相关定义与研究

    最近在研究opencv代码,在读取图上时遇到了一些问题.因此把它总结一下,方便学习. argc 则是 argument count的缩写,表示传入main函数的参数个数: argv 则是 argume ...

  5. c语言中argc的作用,C语言中main函数的参数argc和argv

    参考资料: C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* arg ...

  6. Linux中 C++ main函数参数argc和argv含义及用法

    Linux中 C++ main函数参数argc和argv含义及用法 简介 argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vecto ...

  7. main函数的参数argc和argv

    一.main()函数参数 通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C9 ...

  8. Main函数中参数argc,argv说明

    C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) 这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,a ...

  9. [C/C++基础知识] main函数的参数argc和argv

    该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是vo ...

最新文章

  1. usaco Beef McNuggets
  2. 使用 GitHub, Jekyll 打造自己的免费独立博客
  3. GitLab 在多分支中的一个push
  4. 大刚二开emlog模板超级帅-全版本兼容-修复各种bug
  5. linux创建文件结构体,Linux file 结构体和 inode 结构体,Go语言入门技术,Go语言基础...
  6. ZooKeeper学习第一期---Zookeeper简单介绍
  7. 大道至简-第一张 伪代码
  8. openssl加解密原理
  9. 无线网卡mac地址修改
  10. 怎么才能免费下载CSDN资源啊
  11. 三菱modbusRTU通讯实例_三菱FX5U以太网通讯功能有哪些?
  12. Java学习网站推荐
  13. 比较完整的熊猫烧香解决方案
  14. Android 10 LED 驱动开发
  15. 大芒果 mysql 断开_大芒果3.3.5进入显示 与服务器断开连接
  16. k 均值算法(k-means)
  17. 2022妈妈杯移动通信网络站址规划和区域聚类问题D题思路导读,你还在用kmeans?
  18. 多级评论单表结构设计
  19. Python常用函数总结(按照字母顺序)
  20. 计算机英语第四版可可英语翻译,专四英语作文高分范文背诵(MP3+中英字幕)第28篇:计算机和人翻译...

热门文章

  1. shell脚本字符串截取
  2. 计算机的来源知识,如何理解计算机知识及计算机发展史
  3. java 实现set_js 实现JAVASET
  4. python读取ini文件utf-16 le_Python文件编码不可以使用UTF16
  5. 双向链表删除节点时间复杂度_删除链表的节点(剑指offer第十七题)
  6. win7系统升服务器版本,WIN7专业版可update补丁,WIN7旗舰版无法update补丁,WSUS服务器是按windows类型还是版本区别updata的还是其他什么方式...
  7. Deep Neural Networks的Tricks
  8. 结果集(ResultSet)用法
  9. Python公众号开发部分代码开源
  10. 新的一年,请以这样的标准完善自我