c++ - int * array[60] 和 int * array = new int(60); 之间的区别

标签 c++ arrays pointers

int * array[60]; //creates an array of 60 pointers to an int
int * array = new int(60); //same thing?

这两者会产生相同类型的数组吗?例如,指向整数的指针数组

我知道第一个未初始化,第二个已初始化,但我不确定第二个究竟创建了什么。

最佳答案

int * array = new int(60); //same thing?

不,它们不是一回事。 array在这里只是一个指针,然后指向一个初始化值为60的int。

如果你的意思是 int * array = new int[60];array 将指向一个包含 60 个整数的数组,它们仍然不是一回事。

请注意,正如声明一样,int* array 表示它是一个指针,而int* array[60] 表示它是一个数组(包含 60 个指针)。 (数组可能会衰减为指针,即 int* array[60]int**,它与 int* 不同。)

关于c++ - int * array[60] 和 int * array = new int(60); 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319081/

相关文章:

c++ - gSOAP 动态数组作为输入参数

c++ - 在声明时将静态二维数组初始化为零

C++ 更快的字符数组比较

c - 如何在 C 中为 char** 及其所有 char* 分配内存?

c - 通过指针打印文本

c - 从数组中提取切片的正确方法

c++ - 这是设计缺陷吗?

c++ - 将字符串转换为 LPCWSTR 以供 CreateFile() 寻址串行端口

javascript - 如何使用从零到数组完整大小的自然数自动填充 5x3x2 数组?

java - 为什么我的数组没有出现在 ListView 中?