二维数组a[3][4],为什么不能int *p=a ?

#include<iostream>usingnamespacestd;intmain(){inta[3][4]={{1,2,3,4},{5,6,7,8},{9,9,9,... #include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,9,9,9}};
int *p=a;//cannot convert `int (*)[4]' to `int*' in initialization,为神摸?
cout<<p<<endl;
return 0;

}
展开
 我来答
306712241
2012-04-08 · TA获得超过2512个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:265万
展开全部
C语言规定数组名是首地址,也就是指针 二维数组名就相当于二级指针(指向指针的指针), 而你定义的int *p; 这个p只是一级指针, 所以 p不能指向a ,
804431024
2012-04-08 · TA获得超过745个赞
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:258万
展开全部
这是个指针类型的问题,int *p中p的类型是int *型,二维数组名a可以看做是int **型的,你把int *p=a[0]就好了,a[0]在这里是一级指针;或者int *p=*a;
更多追问追答
追问
谢谢
追答
int a[3][4]={a[0],a[1],a[2]};
a[0]={1,2,3,4},
a[1]={5,6,7,8},
a[2]={9,9,9,9}
这样你就懂了!呵呵。。。a是指向数组的指针,而int *p是指向整型的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式