呵呵,首先你的二维数组写错了。这个赋值语句是不合法的,因为指针p是指向一个int值的,而a是指向一个int指针的指针,它俩的类型都不同。。所以这个语句是不合法的。。
数组名可以认为是个指针常量。
int *p,a[3][4];
你不可以 p = a; 因为a是二维数组。
但是你可以 p = (int*)a; 或者 p = a[0];或者 p = *a;
p是一维指针, (int*)a是强制转换,转换二维指针得到一个一维指针给p当然可以。
p=*a,*a是一维指针,所以一维指针给一维指针赋值当然可以
不可以