gpt4 book ai didi

c++ - 方法参数

转载 作者:行者123 更新时间:2023-11-28 07:16:23 24 4
gpt4 key购买 nike

我对提供给以下构造函数的参数有疑问:

// Codesnippet 1
Foam::argList::argList
372 (
373  int& argc,
374  char**& argv,
375  bool checkArgs,
376  bool checkOpts
377 )
.
.
.
  1. & 是什么意思?

  2. char**& 是什么意思?其实我有代码

    //codesnippet 2
    Foam::argList args(argc, argv);

其中 argv 是提供给 main 方法的命令行参数的地址

  // Codesnippet 3
int main(int argc, char *argv[])

因此我不明白为什么codesnippet 1中传递的参数被描述为char**&

最佳答案

char**& 应该从右到左阅读。 & 在此上下文中表示引用。 * 表示指针。所以这应该被理解为一个对指向char 指针的指针的引用。字符串是字符数组,在 C 和一些 C++ 代码中,字符串类型为 char*。所以你可以简化上面说 char**& 是一个指向字符串的指针的引用。如果您递增该指针,您将获得字符串数组中的下一个字符串,并且该数组包含 argc 项。

char *argv[] 是一个指向 char 的指针数组。这是表示它是字符串数组的另一种方式,尽管使用 [] 可以更清楚地表明它实际上是一个数组。

因此您可以从 char *argv[] 隐式转换为 char** argv。它们在实践中是同一回事。

至于引用 (&),值得阅读其他地方的适当教程。

关于c++ - 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com