gpt4 book ai didi

c++ - 在函数中传递 const int 的值以初始化数组

转载 作者:行者123 更新时间:2023-11-28 02:07:08 26 4
gpt4 key购买 nike

我知道数组需要有一个 const int 来初始化,所以我在 main 中有这个。我想在 main 中使用它,因为我希望能够在必要时轻松修改这些数字。

const int magicWordCount = 10;
compareWords(magicWordCount);

这个函数的声明是:

void compareWords(const int);

定义:

void Words::compareWords(const int magicWordCount)
{
std::string magic[magicWordCount] = {};
convertToStringArray(magicBuffer, magicBufferLength);
}

当我这样做时,定义中的“magicWordCount”被智能感知加下划线告诉我,表达式必须有一个常量值。我对值不恒定的地方感到困惑。想法?

最佳答案

尽管magicWordCountconst,但就编译器所知,它是一个运行时常量,而不是编译时常量。换句话说,它可以确保 magicWordCount 的值不会在 Words::compareWords 中被改变。

这不足以声明具有特定大小的数组:编译器(和智能感知)要求编译时常量; magicWordCount 不是编译时常量。

你可以通过使用 std::vector 而不是数组来避免这个问题:

std::vector<std::string> magic(magicWordCount);

即使没有 const,上面的代码也可以工作。

关于c++ - 在函数中传递 const int 的值以初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059903/

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