为什么没有在主函数中传递参数?

时间:2018-08-02 04:48:08

标签: c++ c

每当我们在任何代码中定义main()函数时,为什么不在其中传递任何参数?

3 个答案:

答案 0 :(得分:8)

main()的C ++标准认可的变体是:

int main () { body }
int main (int argc, char *argv[]) { body } 

main()的C标准认可的变体是:

int main (void) { body }
int main (int argc, char *argv[]) { body } 

还有其他特定于平台的变体,但是所有变体都必须返回int

似乎您只看到了使用main()第一版的程序。大多数实际应用程序都使用main()的第二版本。它允许他们处理命令行参数。

答案 1 :(得分:1)

您仅在调用函数时传递参数,但这可能只是我们两个之间的术语差异。
在定义函数时,我们定义形式参数,包括它们的类型。
如果您从未见过使用参数定义的main(),那么您将从未见过可以处理命令行参数的main()

main()可以处理这些错误的常用原型是

int main(int argc, char **argv)

int main(int argc, char* argv[])

有关如何使用它的示例,请参见
https://stackoverflow.com/a/47536091/7733418

答案 2 :(得分:0)

主要语法是

int main(int argc, char **argv);

其中,argc是指传入的命令行参数的数量,其中包括用户调用的程序的实际名称。 argv包含实际参数,从索引1开始。索引0是程序名称。