为什么main(int argc,char*argv [])有两个参数?

eli*_*lik 10 c argv argc

我一直认为这argc是标志结束的必要条件,argv但我只是argv[argc] == NULL按照定义学到了这一点.我认为这argc完全是多余的吗?如果是这样,我一直认为C以效率的名义取消冗余.我的假设是错误的还是背后的历史原因?如果原因是历史性的,你能详细说明吗?

Mic*_*urr 6

历史.

Harbison&Steel(第5版,9.9"主程序")说如下:

标准C要求argv[argc]是一个空指针,但在一些较旧的实现中并非如此.