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

时间:2015-06-09 07:09:36

标签: c++ c standards specifications

int main(int argc, char **argv)
{}
  1. argc是否可能等于0?

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

  3. 这些问题有没有标准?

2 个答案:

答案 0 :(得分:6)

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

  2. C(和C ++)规范。

  3. 你也错过了一个:argv中的最后一个元素始终为NULL,这意味着argv[argc]始终为NULL

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

    在C ++ 11规范中,§3.6.1主要功能。

答案 1 :(得分:1)

  1. 否。 Argv [0]不必存在,但如果确实存在,则它是一个程序名称,因为它可以获得。
  2. 我想这是C,Cpp的标准配置。 @JonathanLeffler联系了一个很好的答案。