我之前遇到过这样的函数:
int main(int argc, char **argv, char **argw){
}
为什么需要三个参数,这实际上是如何工作的?
答案 0 :(得分:7)
main的第三个参数通常称为envp
。
int main(int argc, char **argv, char **envp) {
许多编译器为main
提供了第三个参数,但它没有在C标准中指定,因此使用它是未定义的行为。如果您尝试将代码移植到不提供第三个参数的平台,则程序很可能会失败。
答案 1 :(得分:0)
我之前见过这些论点。在C ++代码中启动时,我的编译器也将它们放在那里。我可以告诉你一个事实,它在C ++中不是必需的,虽然我不能在C中肯定地说。它们看起来是要传递给函数int main
的变量的插槽。其中一种是int
,另外两种是char
。这些变量通常由用户在程序执行时传入。