【发布时间】:2018-08-12 09:44:54
【问题描述】:
当你想处理命令行参数时,你可以像下面这样定义main函数。
int main(int argc, char **argv) { ... }
或
int main(int argc, char *argv[]) { ... }
很多网站都有解释,第一个argv是指向指针的指针,第二个是指针数组。但是,这是真的吗?实际上,即使您使用第二个定义,您也可以将argv 设置为= 运算符的LHS,如果argv 确实是一个数组,我认为这是不允许的。在我看来,“当写成函数的参数时”,char **argv 和char *argv[] 是完全相等的。但是,我还没有找到证据。
谁能帮助我? (我想要的是严格或正式的书面证据。)
注意:我已经阅读了下面的主题。我相信我的帖子不是他们的重复。
【问题讨论】:
-
当函数参数被声明为数组时,它会衰减为指针。这两个完全一样。
-
哪个网站这么说的?
-
@PeteBecker 谢谢。但是,你有书面证据吗?不过我觉得你说的很自然。
-
当然,去书面证据的标准。
-
@SombreroChicken 我访问过的几乎所有网站。 (它们都是用日语写的。)