相信大家在刚开始看OpenCV的C/C++代码时,会有这样的疑惑:为什么有些代码中main函数的参数中有argc和argv这样的参数呢??今天就给大家详细讲解一下这两个参数的含义和用法。
我们经常见到的两种形式如下:
1. int main(int argc , char ** argv)
2. int main(int argc , char * argv[])
首先我们先来看一下这两个参数的含义:
argc( argument counter ):
程序的运行参数个数(程序接受参数的个数)
argv(argument vector ):
运行参数的字符串数组(每个char* 表示程序路径名和参数)
如果过还不明白我们来举个例子来说明:
#include<iostream>
using namespace std;
int main(int argc, char ** argv)
{
int i;
for (i = 0; i < argc; i++)
cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
return 0;
}
编译后会生成exe文件,我们将文件拖入windows命令行中,如下图:
并在文件路径后加入a、b、c、d、e,此时argc=6,接下来回车,观察运行结果:
我们可以看到每个参数对应的字符串。
注意:argv的下标是从0开始的,这也符合C/C++的风格