int main(int argc, char* argv[])
或者是int main(int argc, char** argv)
里面的参数是什么意义呢?
- argc 是
argument count
的缩写,表示传入main函数的参数个数; - argv 是
argument vector
的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]
一定是程序的名称(是固定的值),是包含了程序所在的完整路径,因此准确的说我们输入的main函数的参数个数应该是argc-1个;
下面是代码示例:
#include <iostream>
using namespace std;
// 如果在程序后面加入参数, 就会打印多个参数,例如在cmd中加入参数执行,或者在linux中执行的时候加上参数会打印多个。但argc[0] 始终是程序的路径。
int main(int argc, char** argv)
{
for (int i =0; i<argc; i++)
cout << "argc [" << i << "] is " << argv[i] << " ";
return 0;
}
下面放上一个opencv 显示图片的例子:
#include <iostream>
#include <core/core.hpp>
#include <highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat img = imread(argv[1);
imshow("mypic", img);
waitKey();
return 0;
}
在linux中执行的时候只需要在执行文件后面加上一个需要打开图片的例子就行了./xxx 图片路径
.
ps: 这里的argc和argv只是参数,可以更换名字,只是现在学习的都按照前人的习惯而已。