【发布时间】:2021-02-05 07:41:20
【问题描述】:
我遇到了一个素数生成器,他们在其中使用了这行代码
bool *numberlist = new bool[size+1];
这会产生什么?
代码在for循环中也有这个:
numberlist[i*j]=true;
numberlist 不是指针吗?你怎么能像数组一样遍历它。
【问题讨论】:
-
在 C 中,数组和指针在很多情况下是可以互换的。在第一段代码中,指针指向数组的第一个元素。在第二个中,它访问相对于指针的
i*jth bool 值。 -
那么,numberlist[ ij ] == *numberlist[ ij ] ?
-
如果我理解您的疑问,这可能是 stackoverflow.com/questions/56220681/… 的欺骗。
-
@Sharkum no
numberlist [i*j] == *(numberlist + (i*j));[]operator 已经做了一个指针解引用