11智能在线
新记
C语言 指针引用二维数组 为什么
二维数组在内存里面也是线性排列的,为什么直接int *p=a;(a为一个二维数组)不行,求解释原理!!!
举报该文章
相关建议 2015-01-21
在C语言中,实际上,没有真正的多维数组,只有一维数组
所谓的二维数组,只不过是,一个一维数组中,每个元素的类型,本身又是一维数组而已
因此,定义指向二维数组的指针,实际上,是定义一个指向包含多少个元素的一维数组的指针
比如:
int a[3][4];
int (*p)[4]; //定义一个指向包含4个元素的一维数组的指针
p=a; //指针p指向二维数组a
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/fms4p2q4mp248sm88s7.html
其他看法
第1个回答 2015-01-21
要int **p=a;才行。
因为int *p定义的p是指向int型变量的,而二维数组a表示指向数组的指针,也就是指向指针的指针,所以类型不同,不能直接赋值。
追问
报错
追答
楼下正解。
第2个回答 2015-01-21
类型不同,一个是数组指针,一个整形指针,定义同类型的就可以了
第3个回答 2015-01-21
首先,int *p是定义一个int类的指针(地址),a是一个二维数组,你的意思是不是要p指向a数组?
相似回答
大家正在搜
相关问题
C语言中指针引用二维数组元素的问题
关于C语言中指针引用二维数组一些问题
C语言二维数组指针 函数引用
C语言函数调用二维数组,指针问题
C 语言指针的指针和二维数组的区别?
求问个c语言问题,为什么二维数组做参数引用时,数组要填下标,...
c语言用一级指针引用二维数组 的地址为什么是p+i*N+j。...
C语言中二维数组为什么要进行两层解引用才能求出值