7.3.6 带参主函数
前面介绍过的main函数都是不带参数的,实际上,main函数也可以带参数。main函数的参数是由谁传来的呢?答案是操作系统,C++规定main函数的参数只能有两个,即argc和argv,带参main函数的形式如下所示。
int main(int argc,char*argv[]) { …… }
第一个参数argc必须是整型变量,称做参数计数器,其值是包括命令名在内的参数个数;第二个参数argv必须是指向字符指针数组,存放命令名和参数字符串的地址。
要调用带参主函数必须在操作系统环境下进行,参见如下示例代码。
#include<iostream> using namespace std; int main(int argc,char*argv[])//两个参数 { for(int i=argc-1;i>=0;i—)//倒着输出,0到argc-1,防止越界 { cout<<argv[i]<<endl; } return 0; }编译链接上述代码生成可执行文件,假设其名为example.exe,复制到C盘根目录下,在DOS环境下输入下列命令行。 C:\>example world hello
输出结果如下所示。
hello world example
文件名example本身也算个参数,所以,上述命令行调用example.exe共用3个参数,DOS系统向main函数传递的参数argc为3,字符指针数组argv中的元素argv[0]、argv[1]、argv[2]分别存储着字符串example、world、hello的地址,按照main函数的定义,将3个字符串倒序输出。