我是 C++ 新手。我想要一个一定长度的 const 数组。这是一个相当长的数组,因此初始化常量数组的标准方法,即:
const bool some_array[] = {true, false, true};
是不切实际的。我想初始化一个布尔值的常量数组。我试图像这样实现它:
bool* sieve_of_eratosthenes(bool* n, n_length);
int main(){
bool b[500];
bool primeList[] = {sieve_of_eratosthenes(b, 500)};
}
这几乎可以工作,尽管它不是很优雅或节省空间(我愿意就如何更好地实现这个数组发表评论)。问题是,返回数组的第零个元素,即 primeList,被设置为 true/1,即使我已经明确地将我的 s_of_e() 函数返回的布尔数组中的第零个元素设置为 false/0。
primeList[0] == 1
什么时候应该:
primeList[0] == 0
因为 0 不是素数...
谁能启发我为什么要这样做?