pt是int *,ar1是二维数组,相当于int **,编译器不会帮你默认转换不同类型的指针,你可以强制转换 p = (int *)ar1;可以通过ar1[2][3],相当于2个整型数组,每个数组3个元素。这为啥不理解?二维数组就像一个棋盘,棋盘的每一行就相当于一个数组。那么棋盘不就是一个行的数组么?