目录
一、main函数形式
1.无参数:
2.带有两个参数:
二、参数详解
1.int argc
2.char* argv[]
三、示例演示
一、main函数形式
在C++中,main
函数可以有两种常见的参数形式:
1.无参数:
代码如下:
int main() {
// ...
return 0;
}
这是最基础的 main
函数形式。
2.带有两个参数:
代码如下:
int main(int argc, char* argv[]) {
// ...
return 0;
}
第一种不带参数很好理解,下面就来详细理解第二种带有两个参数的形式。
二、参数详解
1.int argc
main函数第一个参数为int argc,int表示为整形,argc全称为argument count,翻译为中文就是参数数量,可见第一个参数很好解释就是表示传递给程序的命令行参数的数量(包括程序名称)。
2.char* argv[]
main函数第二个参数为char* argv[],char*表示字符指针,argv全称为argumen vector,翻译中文就是参数数组。
很多人看到这个参数指char* argv[],应该大多数新手程序员都是一脸懵的状态,心想char argv[]表示传递的参数是字符数组也就是字符串,但是又加上了*指针是什么意思呢?不要着急,下面看上一段代码,保证新手也能够理解!
char nameStr1[] = "David";
char nameStr2[] = "Lucy";
// char* name[] 表示的是字符串数组
char* name[] = { nameStr1,nameStr2 };
for (auto item : name)
{
cout << item << endl; // David Lucy
}
从上面三行代码不难看出,char* argv[]其实存储的就是字符串数组,其中nameStr1和nameStr2表示的是指针(参考int arr[],arr为指针地址。虽然std::cout << nameStr1;结果为"David",不是地址。这是因为std::cout
的 <<
运算符重载版本知道如何处理 char*
(字符指针)类型的参数。它不会打印出指针的地址,而是打印出指针指向的字符串内容)所以综上所述,main函数中第二个参数表示的就是数组,数组里面包含这命令行参数的内容。
三、示例演示
1.新建项目输入代码
#include <iostream>
int main(int argc, char* argv[])
{
std::cout << "参数个数为:" << argc << std::endl;
for (int i = 0; i < argc; i++)
{
std::cout << "参数为: " << argv[i] << std::endl;
}
}
2.获取执行程序路径名
右键运行程序,点击重新生成。
获取运行程序路径
3.打开控制台程序,输入运行程序的路径以及其他参数
结果可见第argv
将是一个包含四个字符串的数组:
"D:\class_c++\YiDaoYun_Class2.1\Debug\1.main_arguement.exe"
, "arg1"
, "arg2"
, 和 "arg3"
。
第一个数组元素为运行程序的运行地址。