C语言 指针引用二维数组 为什么
二维数组在内存里面也是线性排列的,为什么直接int*p=a;(a为一个二维数组)不行,求解释原理!!!...
二维数组在内存里面也是线性排列的,为什么直接int *p=a;(a为一个二维数组)不行,求解释原理!!!
展开
4个回答
展开全部
要int **p=a;才行。
因为int *p定义的p是指向int型变量的,而二维数组a表示指向数组的指针,也就是指向指针的指针,所以类型不同,不能直接赋值。
因为int *p定义的p是指向int型变量的,而二维数组a表示指向数组的指针,也就是指向指针的指针,所以类型不同,不能直接赋值。
追问
报错
追答
楼下正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类型不同,一个是数组指针,一个整形指针,定义同类型的就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,int *p是定义一个int类的指针(地址),a是一个二维数组,你的意思是不是要p指向a数组?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询