在许多C ++ IDE和编译器中,当它为您生成主要功能时,它看起来像这样: ios
int main(int argc, char *argv[])
当我不使用IDE而是仅使用命令行编译器来编写C ++时,键入: 数组
int main()
没有任何参数。 这是什么意思,对个人程序相当重要吗? ide
argv
和argc
是在C和C ++中将命令行参数传递给main()
。 spa
argc
将是argv
指向的字符串数。 (实际上)这将是1加上参数的数量,由于几乎全部的实现都将程序名放在数组的前面。 命令行
按照惯例,这些变量分别命名为argc
( 参数计数 )和argv
( 参数向量 ),可是能够给它们指定任何有效的标识符: int main(int num_args, char** arg_strings)
一样有效。 指针
若是您不打算处理命令行参数,则也能够彻底省略它们,产生int main()
。 code
尝试如下程序: 字符串
#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
运行它会输出 get
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[]
是字符串(字符指针)的数组,表示在命令行上提供的各个参数。
第一个参数是提供的参数数量,第二个参数是表示这些参数的字符串列表。
二者的
int main(int argc, char *argv[]); int main();
是C或C ++程序入口点的合法定义。 Stroustrup:C ++样式和技术常见问题解答详细介绍了一些可能对您的主要功能适用或合法的变体。