似乎 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/