在许多C++集成开发环境和编译器中,当它为你生成主函数时,它看起来像这样。
int main(int argc, char *argv[])
当我在没有IDE的情况下编写C++代码时,只是用一个命令行编译器,我输入。
int main()
没有任何参数。 这是什么意思,它对我的程序至关重要吗?
argv
和argc
是C和C++中向main()
传递命令行参数的方式。
argc'将是
argv'所指向的字符串的数量。 这(在实践中)将是1加上参数的数量,因为几乎所有的实现都会在数组前加上程序的名字。
按照惯例,这些变量被命名为argc
(参数计数)和argv
(参数向量),但是它们可以被赋予任何有效的标识符。int main(int num_args, char** arg_strings)
同样有效。
如果你不打算处理命令行参数,也可以完全省略它们,产生int main()
。
试试下面的程序。
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
}
用./test a1 b2 c3
运行它,将输出
Have 4 arguments:
./test
a1
b2
c3
argc
是由命令行传入程序的参数数,argv
是参数数组。
你可以循环浏览这些参数,知道它们的数量,比如。
for(int i = 0; i < argc; i++)
{
// argv[i] is the argument at index i
}
main
的参数代表程序启动时提供给它的命令行参数。argc
参数代表命令行参数的数量,char *argv[]
是一个字符串数组(字符指针),代表命令行上提供的各个参数。