C语言 指针引用二维数组 为什么

2025-04-13 16:56:11
推荐回答(2个)
回答1:

在C语言中,实际上,没有真正的多维数组,只有一维数组

所谓的二维数组,只不过是,一个一维数组中,每个元素的类型,本身又是一维数组而已

因此,定义指向二维数组的指针,实际上,是定义一个指向包含多少个元素的一维数组的指针

比如:

int a[3][4];
int (*p)[4]; //定义一个指向包含4个元素的一维数组的指针
p=a; //指针p指向二维数组a

回答2:

要int **p=a;才行。
因为int *p定义的p是指向int型变量的,而二维数组a表示指向数组的指针,也就是指向指针的指针,所以类型不同,不能直接赋值。