首页 > 解决方案 > 有人可以解释这个指针在这里指的是什么吗?

问题描述

我遇到了一个素数生成器,他们在其中使用了这行代码

bool *numberlist = new bool[size+1];

这创造了什么?

代码在 for 循环中也有这个:

numberlist[i*j]=true;

numberlist 不是指针吗?你怎么能像数组一样遍历它。

标签: c++arrayspointers

解决方案


为了分解它,第一行代码bool *numberlist = new bool[size+1]; 声明了一个大小为 [size+1] 的动态 bool 数组。for 循环中的代码numberlist[i*j]=true;表示元素 i*j 为真。在 C++ 中,当我们使用大括号运算符 ( []) 我们正在做两件事。一个指针算术(因为数组顺序存储在内存中)和两个取消引用指针(访问指针指向的值)。


推荐阅读