为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
临摹微笑 2019-05-30 17:24:25
INARGC,char*argv[]是什么意思?在许多C+IDE和编译器中,当它为您生成主要函数时,如下所示:int main(int argc, char *argv[])当我使用命令行编译器在没有IDE的情况下编写C+时,我输入:int main()没有任何参数。这意味着什么,这对我的计划至关重要吗?
查看完整描述

4 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

argvargc是如何将命令行参数传递给main()在C和C+中。

argc所指向的字符串数。argv。这将(实际上)是1加上参数的数量,因为几乎所有的实现都会将程序的名称放在数组的前面。

变量被命名为argc (参数计数)和argv (变元向量),但它们可以被赋予任何有效的标识符:int main(int num_args, char** arg_strings)同样有效。

它们也可以完全省略,int main(),如果您不打算处理命令行参数。

尝试以下程序:

#include <iostream>int main(int argc, char** argv) {
    std::cout << "Have " << argc << " arguments:" << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << std::endl;
    }}

./test a1 b2 c3威尔输出

Have 4 arguments:
./test
a1
b2
c3


查看完整回答
反对 回复 2019-05-30
?
绝地无双

TA贡献1946条经验 获得超4个赞

argc从命令行传递到程序中的参数,并且argv是参数数组。

您可以循环遍历参数,知道它们的数量,如下所示:

for(int i = 0; i < argc; i++){
    // argv[i] is the argument at index i}


查看完整回答
反对 回复 2019-05-30
?
千万里不及你

TA贡献1784条经验 获得超9个赞

假设您这样运行您的程序(使用sh(语法):

myprog arg1 arg2 'arg 3'

如果你宣布你的主int main(int argc, char *argv[]),那么(在大多数环境中),main()将被称为:

p = { "myprog", "arg1", "arg2", "arg 3", NULL };exit(main(4, p));

但是,如果您声明您的主int main(),它将被称为

exit(main());

你的论点也不能通过。

还有两件事要注意:

  1. 这是仅有的两个标准强制签名。

    main

    。如果特定的平台接受额外的参数或不同的返回类型,那么这是一个扩展,在可移植程序中不应该依赖它。
  2. *argv[]

    **argv

    是完全等价的,所以你可以写

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

    int main(int argc, char **argv).


查看完整回答
反对 回复 2019-05-30
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

参数main表示程序启动时提供给程序的命令行参数。这个argc参数表示命令行参数的数量,并且char *argv[]表示命令行上提供的单个参数的字符串数组(字符指针)。


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 660 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信