似乎 argv[argc] 总是 NULL ,所以我认为我们可以在没有 argc 的情况下遍历参数列表。单个 while 循环将执行此操作。

如果在 NULL 的末尾总是有一个 argv ,为什么我们需要一个 argc

最佳答案

是的,argv[argc]==NULL 是有保证的。见C11 5.1.2.2.1 程序启动(我的重点)



因此,提供 argc 并不重要,但仍然有用。除其他外,它允许快速检查是否传递了正确数量的参数。

编辑:问题已修改为包括 C++。 n3337 草案 3.6.1 主要功能说

关于c++ - 为什么我们需要 argc 而 argv 末尾总是有一个空值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18547114/

10-12 23:33