#include<iostream>
using namespace std;
int main()
{
int *p[2];
p[0] = new int[3];
p[1] = new int[3];
for(int i = 0;i != 2;++i)
for(int j = 0;j != 3;++j)
p[i][j] = i;
int **a = p;
int (*ptr)[2];
a = ptr;
for(int i = 0;i != 2;++i){
for(int j = 0;j != 3;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
我想问的是a是一个指向指针的指针,即二级指针,而p是一个数组名字,只是元素都是指针,那么p应该相当与一个一级指针
那么为什么int **a = p;是正确的。而ptr是数组指针,a = ptr;无法通过编译,两个问题。1上面求解释。2谁能详细解释一下a p 和ptr?