argc 表示命令行参数的个数(argument count),包括程序本身。即 argc 的值至少为 1。argv[] 是一个指向字符串数组的指针,其中每个元素是一个指向传递给程序的参数的指针(argument vector),这些字符串是命令行参数。
书写规范
int main(void){}
int main(int argc, char *argv[]){}
int main(int argc, char **argv){}
测试代码
#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;
}
return 0;
}
结果
(base) lxy-hp@ubuntu:~/CLionProjects/TestMain/cmake-build-debug$ ./TestMain test1 test2
3
./TestMain
test1
test2
结论
- argc值为1+参数个数
- argv第一个值为执行文件,后续才是传入的参数
- main函数传参都是通过字符串传进去的
- 程序被调用时传参,各个参数之间是通过空格来间隔的
- 在程序内部如果要使用argv,那么一定要先检验argc