📅  最后修改于: 2023-12-03 14:39:37.621000             🧑  作者: Mango
当我们在终端中输入可执行文件名后面跟着的一些字符串(例如./my_program hello world
),这些字符串就成为了命令行参数。C和C++中,我们可以通过argc
和argv
来读取这些参数。
argc
是一个整数类型的变量,表示命令行中参数的个数,包括可执行文件本身。即argc
的值至少是1。
argv
是一个指向指针数组的指针,它保存了命令行参数的字符串,其中argv[0]
是指向可执行文件名的指针,argv[1]
指向第一个参数的指针,以此类推。
int main(int argc, char* argv[]) {
// ...
}
上面是主函数的定义方式,其中的argc
和argv
就是命令行参数传递进来的。也可以写成如下形式:
int main(int argc, char** argv) {
// ...
}
这两种定义方式是等价的。
下面是一个简单的示例程序,它输出命令行参数的个数和内容。
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "argc = " << argc << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << "argv[" << i << "] = " << argv[i] << std::endl;
}
return 0;
}
当我们将可执行文件命名为my_program
后,运行./my_program hello world
,输出如下:
argc = 3
argv[0] = ./my_program
argv[1] = hello
argv[2] = world
命令行参数在C和C++中非常方便,可以以字符串的形式传递额外信息给程序。argc
和argv
可以读取这些信息,并进行相应处理。在程序中合理地使用命令行参数可以显著提高程序的灵活性和实用性。