【问题标题】:int main(int argc, char** argv) [duplicate]int main(int argc,char** argv)[重复]
【发布时间】:2011-07-08 16:43:49
【问题描述】:

重复:
What is the proper declaration of main?

main 函数中的参数是什么意思?他们想告诉我们什么?

int main(int argc, char** argv)

更新: 而且,前面的代码行与int main(int argc, char* argv[]) 相似吗?如果是这样,我们怎么能说char** argvchar* argv[] 相似,因为从数组 的角度来看它们看起来并不相似?

与没有参数的int main()相比如何?

谢谢。

【问题讨论】:

    标签: c++ arguments main


    【解决方案1】:

    Wikipedia 提供了很好的解释。第一个参数为您提供命令行参数的数量,第二个参数为您提供实际参数。

    【讨论】:

      【解决方案2】:

      argc 为您提供参数的数量,而 argv 为您提供这些参数。第一个是用于运行程序的 .exe 的路径,以下是 .exe 的调用者在命令行上提供的参数,如下所示:

      my.exe arg1 arg2
      

      int main() {}
      

      只是忽略参数。

      【讨论】:

        【解决方案3】:

        argc 参数是在调用可执行文件时指定的命令行选项的数量,包括可执行文件的名称。各个命令行选项位于argv 数组中,该数组以NULL 终止(用于调用可执行文件的名称和路径在argv[0] 中)。

        这两个版本的区别只是你是否想解析命令行参数 - 如果你对它们不感兴趣,那么你可以使用第二种形式忽略它们。

        【讨论】:

          【解决方案4】:

          argv 是一个包含传递给应用程序的命令行参数的数组。 argc 告诉您该数组中包含的元素数量。

          【讨论】:

            【解决方案5】:

            它们代表命令行参数。

            argc 是命令行参数的数量,包括可执行文件的名称。 argv 是一个以 null 结尾的字符串数组,其中argv[0] 是命令行参数,argv[i] 是之后的第 i 个参数,argv[argc-1] 是最后一个,argv[argc] 实际上定义良好,并且是一个 NULL 指针.

            因此:

            foo bar baz

            在命令行上会有argc=3, argv[0]="foo" argv[1]="bar" argv[2]="baz" argv[3] = NULL

            请注意,没有为“标志”参数放置特殊附件。

            grep -i foo bar.cpp bar.h

            将有 4 个参数(argc=5 包括 grep 本身),-i 是其中之一,即使下一个参数是附加到标志的“值”,这也适用。

            注意你是否使用了通配符

            grep -i foo *

            至少在 UNIX 中,* 会在调用 grep 之前扩展,因此每个匹配的文件都是一个参数。

            顺便说一句

            char** argvchar* argv[]

            做同样的事情。

            此外,虽然标准规定您必须使用其中一个签名(您甚至不应该添加任何 const),但没有法律规定您必须使用这两个变量名,但现在它是如此传统,以至于它们几乎普遍的。 (即,如果需要,您可以使用 argCountargValues)。

            【讨论】:

            • 我认为你的意思是 argc =3 不是 argc =2
            猜你喜欢
            • 2014-10-09
            • 2020-11-03
            • 2011-04-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-08
            • 2014-04-23
            相关资源
            最近更新 更多