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

如题所述

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

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

有缘啊,你已经回答了我两个问题了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-11
应该可以的。
相似回答