每当我们在任何代码中定义main()函数时,为什么不在其中传递任何参数?
答案 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
是程序名称。