int n,q;
cin>>n>>q;
int** seq=new int* [n]; // what is the meaning of this ?
我一直试图理解这个阵列声明半小时但是 int * [n]让我很困惑。 是否有更方便的方式来编写此声明? 我怎样才能在cpp中有这种类型的声明?
答案 0 :(得分:0)
是否有更方便的方式来编写此声明?
在c ++中声明指针数组的惯用方法是
int n,q;
cin>>n>>q;
std::vector<int*> seq(n);
虽然有必要将int*
指针存储在数组中,这是值得怀疑的。
答案 1 :(得分:-2)
int *是一个指针(我假设你知道那些)。
因此int * [n]是一个长度为 n 的数组,其中包含整数的指针
最让人困惑的是,包含数组的变量实际上是C ++中的指针。因此,变量的类型,我们将int * [n]存储为,必须是int **。
指针指向数组的第一个元素,例如seq [2]将编译成*(seq + 2)。数组不是对象,而是计算机在运行时不知道的内存构造。