使用argv [argc + 1]而不是argv []的原因是什么

时间:2020-09-13 04:22:11

标签: c

在Jens Gustedt撰写的《 Modern C 》一书中,一些示例代码片段声明了以下主要功能:

int main ( int argc , char * argv [ argc +1]) {...

这是我第一次看书或教程。

argv[] 

并使用

argv[argc + 1]

我的理解是,将自动创建足够大的数组argv来容纳指向该程序自变量的所有指针,因此我看不到本书代码的用途。

1 个答案:

答案 0 :(得分:4)

argc存储用户传递的命令行参数数量,包括程序名称。 argv是列出所有参数的字符指针数组。它包含指向字符串的指针。这里argv []和argv [argc + 1]除了在argv [argc + 1]中显式显示大小外没有其他区别。使用第一个是作为代码的自我文档形式。它告诉程序员该函数具有先决条件。 argv指针应指向该长度数组的第一个元素。 argv是空指针终止。