C++ 我不知道';“我不明白”是什么意思;双*数组[50]“的;什么意思?

C++ 我不知道';“我不明白”是什么意思;双*数组[50]“的;什么意思?,c++,C++,这是否意味着有一个50的数组,50中的每一个都是指向double的指针?如果是,那么这是否意味着数组[i]将只包含指向堆中另一个位置的地址?它意味着一个数组包含50个双精度*,即指向双精度的指针。在初始化double*array[50]中,您没有将指针分配给任何对象,因此它们不指向任何对象。就像你这样做: double *p; // P doesn't point to anything, using it will cause you issues. double a; // a is a a

这是否意味着有一个50的数组,50中的每一个都是指向double的指针?如果是,那么这是否意味着数组[i]将只包含指向堆中另一个位置的地址?

它意味着一个数组包含50个双精度*,即指向双精度的指针。在初始化
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.
因此,对于数组中的每个指针,在使用它们之前,需要将它们分配给一些内存

[
double*array[50]
]是否意味着存在一个50的数组

50中的每一个都是指向double的指针

如果是,那么这是否意味着数组[i]将只包含指向堆中另一个位置的地址

不,没有这样的意思。每个指针都可以指向内存任何部分中的任何对象,而不仅仅是“堆”。事实上,C++语言对堆的概念是不可知的。
请注意,声明的上下文可能会更改其含义。如果这是一个函数参数的声明,那么答案就不同了