argv [argc] ==?

jak*_*rtz 43 c argv

我的教授和几个学生正在争论是否argv无效终止.我的朋友写了一个小程序,然后打印出来,null但另一个孩子说他可能只是在阅读空白记忆.有人能解决这个问题吗?

pmg*_*pmg 82

从标准:

5.1.2.2.1程序启动
...
- argv [argc]应为空指针.

所以,是的; argv以null结尾

  • @Jack:`argv`是一个指针; `argv [0]`也是一个指针.很可能`sizeof(argv)/ sizeof(argv [0])`评估为'1` ......无论如何,你的想法与我所说的相似(不必走到`argv`数组). (8认同)
  • 它没有比那更明确;) (6认同)
  • 我不知道**为什么**.但它通过避免必须遍历`argv`数组来计算参数来使编写一些程序变得容易一些. (5认同)

Ste*_*e M 40

根据标准,"argv [argc]应为空指针"(5.1.2.2.1).

  • @Reigel:来自1979年的`exec`的手册页(http://plan9.bell-labs.com/7thEdMan/v7vol1.pdf)表明这比标准早了很多,并且包含了一个可能的暗示为什么就是这样:"Argv可以在另一个execv中直接使用,因为argv [argc]是0." (12认同)