这是否意味着有一个50的数组,并且50中的每一个都是指向double的指针?如果是这样那么这意味着array [i]将只包含指向堆中另一个地方的地址吗?
答案 0 :(得分:2)
[
的数组double *array[50]
]是否意味着有一个50
是
并且50中的每一个都是指向double的指针?
是
如果是,那么这是否意味着array [i]只包含指向堆中另一个地方的地址?
没有。没有这样的意思。每个指针都可以指向内存任何部分的任何对象,而不仅仅是“堆”。事实上,C ++语言与堆的概念无关。
请注意,声明的上下文可以更改其含义。如果这是函数参数的声明,那么答案就会不同。
答案 1 :(得分:1)
它表示一个包含50 double *
的数组,它是指向双精度的指针。在初始化double *array[50]
中,您没有将指针分配给任何东西,因此它们指向任何东西。就像你这样做:
double *p; // P doesn't point to anything, using it will cause you issues.
double a; // a is a automatic storage duration instantiation of a double.
p = &a; // now p points to a.
因此,对于数组中的每个指针,您需要先将它们分配给某些内存,然后才能使用它们。