在许多C ++ IDE和编译器中,当它为您生成主要功能时,它看起来像这样:
int main(int argc, char *argv[])
当我不使用IDE而是仅使用命令行编译器来编写C ++时,键入:
int main()
没有任何参数。 这是什么意思,对我的程序至关重要吗?
#1楼
argv和argc是在C和C ++中将命令行参数传递给main() 。
argc将是argv指向的字符串数。 (实际上)这将是1加上参数的数量,因为几乎所有的实现都将程序名放在数组的前面。
按照惯例,这些变量分别命名为argc ( 参数计数 )和argv ( 参数向量 ),但是可以给它们指定任何有效的标识符: int main(int num_args, char** arg_strings)同样有效。
如果您不打算处理命令行参数,则也可以完全省略它们,产生int main() 。
尝试以下程序:
#include
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
#2楼
argc是从命令行传递到程序中的参数数量,而argv是参数数组。
您可以遍历参数,知道它们的数量,例如:
for(int i = 0; i < argc; i++)
{
// argv[i] is the argument at index i
}
#3楼
main的参数表示启动程序时提供给程序的命令行参数。 argc参数表示命令行参数的数量,而char *argv[]是字符串(字符指针)的数组,表示在命令行上提供的各个参数。
#4楼
第一个参数是提供的参数数量,第二个参数是表示这些参数的字符串列表。
#5楼
两者的
int main(int argc, char *argv[]);
int main();
是C或C ++程序入口点的合法定义。 Stroustrup:C ++样式和技术常见问题解答详细介绍了一些可能对您的主要功能适用或合法的变体。