Mar*_*ton 4 c c++ arrays pointers
据我所知,在某些情况下,数组被转换为指向其第一个元素的指针:
int a[5];
int * p;
p = a;
Run Code Online (Sandbox Code Playgroud)
按照这种方法并考虑到我可以为指针分配一个数组,为什么我不能将二维数组分配给指针指针?
int a[5][5];
int ** q;
q = a;
Run Code Online (Sandbox Code Playgroud)
但是,我可以为指针指针指定一个指针数组:
int * p[5];
int ** q;
q = p;
Run Code Online (Sandbox Code Playgroud)
如果数组转换为指向其第一个元素的指针,则在第二个示例中发生q = a时,a应该是指向[0]的指针,而[0]应该是指向[0] [0]的指针, 对?
此外,如果我这样做,我不会收到错误:
cout << **a;
Run Code Online (Sandbox Code Playgroud)
在此先感谢,我希望你能帮助我理解.