程序的参数格式是否有任何标准?

xml*_*lmx 3 c c++ standards specifications

int main(int argc, char **argv)
{}
Run Code Online (Sandbox Code Playgroud)
  1. 有可能argc等于0吗?

  2. 必须argv[0]是可执行文件的名称?

  3. 这些问题有什么标准吗?

Som*_*ude 6

  1. 是.

  2. 通常是的,它也可能是空的,或其他一些识别字符串,甚至NULL(见我的附录).也可以argv[0]从程序内部更改为其他内容.

  3. C(和C++)规范.

您还错过了一个:最后一个元素argv始终NULL,意义argv[argc]将永远是NULL.


在C11规范中,它在§5.1.2.2.1程序启动中.

在C++ 11规范中,它的§3.6.1主要功能.

  • 2.不; 如果无法确定可执行文件名,`argv [0]`可能是指向空字符串的指针.也就是说,它更像是一种理论而非实际的陈述. (3认同)