C语言二维数组的地址为什么 不可以赋值给指针变量?

兄弟姐妹哪位知道,C语言二维数组的地址为什么 不可以赋值给指针变量?
最新回答
知海無涯

2024-06-04 06:42:19

二维数组
的数组名和一维数组的数组名不一样。

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

2024-06-04 04:52:24

应该可以的。