C++中main()函数和命令行参数介绍
在C++中,main()函数是程序的入口点,它是一个特殊的函数,在程序开始执行时被首先调用,也是程序结束时的最后一个被执行的函数。main() 函数的类型始终为 int,根据C++标准,main() 函数必须返回一个整数作为程序的退出码。这个退出码可以用来表示程序的执行状态,通常为0表示程序正常结束,非零值表示程序发生了错误或异常情况。
在C++中,main()函数函数声明可以变为以下形式之一:
int main()
{
// 代码块
return 0; // 或者其他整数值
}
int main()和int main(void)是等价的,它们都表示main函数没有接受任何参数。这两种形式都是合法的,并且在主流的C++编译器中被广泛接受。
或
int main(int argc, char *argv[])
{
// 代码块
return 0; // 或者其他整数值
}
后面这种形式可以让我们从命令行传递参数给程序。其中:
argc 是命令行参数的数量即个数
argv 是一个指向字符串数组的指针,每个字符串表示一个命令行参数,argv表示命令行参数的具体内容,其类型为字符指针数组。这些参数可以在程序运行时通过命令行提供。argv是一个指向字符串数组的指针,每个字符串都存储一个命令行参数。第一个参数argv[0]通常是程序的名称。
以下是一个示例,展示了如何在C++中使用命令行参数:
#include <iostream>
using namespace std; int main(int argc, char* argv[]) {// 打印程序名称cout << "程序名称: " << argv[0] << endl;// 打印命令行参数for (int i = 1; i < argc; ++i) {cout << "参数 " << i << ": " << argv[i] << endl;}return 0;
}
如果将程序保存为myProgram.cpp并编译运行,我这里将编译文件myProgram.exe放在D:\cppDemo中,
可以通过在命令行cmd中输入以下内容来传递参数:
myProgram aa bb
输出是:
程序名称: myProgram
参数 1: aa
参数 2: bb
参见下图:
这样,我们可以在程序中通过 argc 和 argv 来访问和处理这些命令行参数。
myProgram aa bb
这将导致 argc 的值为 3(包括程序名 ./myProgram 在内),而 argv 会被填充为以下内容:
char *argv[3] = {
"./myProgram",
"aa",
"bb"
};
这样,我们可以在程序中通过 argc 和 argv 来访问和处理这些命令行参数。
小结一下:
main()函数的原型可以有两种形式:
int main()
int main(int argc, char* argv[])
第一种形式最常见,表示main()函数没有接受任何参数,不需要处理命令行参数。
第二种形式,表示main()函数接受命令行参数。其中,argc表示命令行参数的数量,argv是一个指向字符串数组的指针,每个字符串都存储一个命令行参数。第一个参数argv[0]通常是程序的名称。