INARGC,char*argv[]是什么意思?

INARGC,char*argv[]是什么意思?

在许多C+IDE和编译器中,当它为您生成主要函数时,如下所示:

int main(int argc, char *argv[])

当我使用命令行编译器在没有IDE的情况下编写C+时,我输入:

int main()

没有任何参数。这意味着什么,这对我的计划至关重要吗?


临摹微笑
浏览 661回答 4
4回答

犯罪嫌疑人X

argv和argc是如何将命令行参数传递给main()在C和C+中。argc所指向的字符串数。argv。这将(实际上)是1加上参数的数量,因为几乎所有的实现都会将程序的名称放在数组的前面。变量被命名为argc&nbsp;(参数计数)和argv&nbsp;(变元向量),但它们可以被赋予任何有效的标识符:int main(int num_args, char** arg_strings)同样有效。它们也可以完全省略,int main(),如果您不打算处理命令行参数。尝试以下程序:#include&nbsp;<iostream>int&nbsp;main(int&nbsp;argc,&nbsp;char**&nbsp;argv)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;<<&nbsp;"Have&nbsp;"&nbsp;<<&nbsp;argc&nbsp;<<&nbsp;"&nbsp;arguments:"&nbsp;<<&nbsp;std::endl; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;argc;&nbsp;++i)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;<<&nbsp;argv[i]&nbsp;<<&nbsp;std::endl; &nbsp;&nbsp;&nbsp;&nbsp;}}用./test a1 b2 c3威尔输出Have&nbsp;4&nbsp;arguments: ./test a1 b2 c3

绝地无双

argc从命令行传递到程序中的参数,并且argv是参数数组。您可以循环遍历参数,知道它们的数量,如下所示:for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;argc;&nbsp;i++){ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;argv[i]&nbsp;is&nbsp;the&nbsp;argument&nbsp;at&nbsp;index&nbsp;i}

千万里不及你

假设您这样运行您的程序(使用sh(语法):myprog&nbsp;arg1&nbsp;arg2&nbsp;'arg&nbsp;3'如果你宣布你的主int main(int argc, char *argv[]),那么(在大多数环境中),main()将被称为:p&nbsp;=&nbsp;{&nbsp;"myprog",&nbsp;"arg1",&nbsp;"arg2",&nbsp;"arg&nbsp;3",&nbsp;NULL&nbsp;};exit(main(4,&nbsp;p));但是,如果您声明您的主int main(),它将被称为exit(main());你的论点也不能通过。还有两件事要注意:这是仅有的两个标准强制签名。main。如果特定的平台接受额外的参数或不同的返回类型,那么这是一个扩展,在可移植程序中不应该依赖它。*argv[]和**argv是完全等价的,所以你可以写int main(int argc, char *argv[])如int main(int argc, char **argv).

繁华开满天机

参数main表示程序启动时提供给程序的命令行参数。这个argc参数表示命令行参数的数量,并且char *argv[]表示命令行上提供的单个参数的字符串数组(字符指针)。
打开App,查看更多内容
随时随地看视频慕课网APP