二维数组的数组名和一维数组的数组名不一样。一维数组名a表示其首地址,指针类型是(int *)。二维数组名d表示其行指针,指针类型是(int (*)[7])。所以你要定义指针去用二维数组名赋值,需要定义指针int (*k)[7];不是int *k。或者你把二维数组当成一维数组来看(二维内部地址是连续的,和一维一样),这样int *k;k=&d[0][0];之后通过k++遍历二维数组所有值。 追问 有缘啊,你已经回答了我两个问题了