main()称之为主函数,是所有程序运行的入口,可以分为有参或无参两种情况。
一般情况下我们定义的main函数都是空形参列表:
int main() {......}
但有时候我们确实需要给main函数传递实参,一种常见的情况是用户通过设置一组选项来确定函数所要执行的操作,这些命令行选项通过两个(有些实现允许更多的参数,但这只是对标准的扩展)形参传递给main函数:
int main(int argc, char *argv[]) {......}
or
int main(int argc, char **argv) {......}
这两个参数,一个是int类型的形参;一个是数组形参,它的元素是指向C风格字符串指针。按照惯例,第一个int参数被称为argc(argument cout),大致意思就是计数参数,用来表示数组种字符串的数量;按照惯例,第二个是指向字符串的指针数组被成argv(argument value)。注意,当使用argv中的实参时,一定要记得可选的实参从argv[1]开始,因为argv[0]中保存了程序的名字,并非用户输入的。
举例:
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
for (int i = 0; i < argc; i++)
cout << "Argument " << i << " is " << argv[i] << endl;
system("pause");
return 0;
}
该程序编译运行成功,产生了 Win32Project1.exe 文件,在打开DOS窗口,用cd命令进入到 Win32Project1.exe 文件夹下 ,在DOS下输入如下命令:
Win32Project1 hello world
可观察结果如下图所示: