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

当有时需要向main函数传递实参,定义:

             int main(int argc,char *argv[])		{   ...   }

第一个形参argc表示数组中字符串的数量,第二个形参argv是一个数组。因为第二个形参是数组,所以main函数也可定义为:

             int main(int argc,char **argv) 	    {   ...   }

其中argv[0]指向程序的名字,并且包含了程序所在的完整路径,接下来的元素依次传递命令行提供的实参。
简单用法示例,新建工程键入代码:

#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");
}

编译运行后输出如下:
在这里插入图片描述
传递参数给main函数有两种方法,第一种方式是在编译环境中设置,以VS2017为例,右击项目—>属性—>配置属性—>调试—>命令参数,在命令参数中输入,每个参数之间用空格隔开。
在这里插入图片描述
编译运行后输出如下:
在这里插入图片描述
第二种方式也是经常会用到的方式是通过命令提示符传入。首先需要打开命令提示符窗口,点击开始菜单在“搜索程序和文件”里输入命令“cmd”或者直接按快捷键 Windows+R,在弹出的对话框里输入“cmd”即可打开命令提示符窗口:
在这里插入图片描述
打开命令提示符窗口后需要输入生成的exe文件所在的完整路径,一个简便的方法是把exe文件直接拖入提示符窗口即可,之后输入传入参数,以空格分隔,之后回车,显示如下:
在这里插入图片描述
下面演示使用OpenCV显示一幅图片:

#include <iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;

 int main(int argc,char *argv[])
{
	Mat image = imread(argv[1]);
	imshow("Lena", image);
	waitKey();
}

编译运行后输出如下:
在这里插入图片描述

一般编译器默认使用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");
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值