int main(int argc, char **argv)
{}
argc
是否可能等于0?
必须argv[0]
是可执行文件的名称吗?
这些问题有没有标准?
答案 0 :(得分:6)
是
通常是的,它也可能是空的,或者其他一些识别字符串,甚至是NULL
(参见我的附录)。也可以从程序内部将argv[0]
更改为其他内容。
C(和C ++)规范。
你也错过了一个:argv
中的最后一个元素始终为NULL
,这意味着argv[argc]
始终为NULL
。
在C11规范中,它在§5.1.2.2.1程序启动中。
在C ++ 11规范中,§3.6.1主要功能。
答案 1 :(得分:1)