也许你在某些地方会见到这种写法的main函数:

1
2
3
4
int main(int argc, char *argv[])
{
...
}

其中的int argc, char *argv[]的含义是接收从命令行调用时附加的参数

其中,int argc用于统计参数的总个数,char *argv[]则依次保存这些参数

argc的值至少为1,即使你没有附加任何参数,因为arge[0]会保存着当前程序的名称或完整路径

为什么是或呢?arge[]其实保存的是这一行中的所有参数,如果当前程序是在PATH中的(或当前文件夹,Windows环境下),就可以仅凭名称调用

下面的程序能依次打印接收的参数,你可以借此学习如何使用这一机制

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
{
cout << "argument" << i << ": " << argv[i] << endl;
}
cout << "total argument:" << argc;
return 0;
}