首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组指针:cannot convert int[2][3] to int (*)[2] in assignment,该如何解决

2012-04-19 
数组指针:cannot convert int[2][3] to int (*)[2] in assignment代码如下C/C++ codeint i[2][3]{10,20,3

数组指针:cannot convert int[2][3] to int (*)[2] in assignment
代码如下

C/C++ code
int i[2][3]={10,20,30,8,9,10};    int (*p)[2];p=i;printf("*(*p+1)+2 =%d ",*(*p+1)+2);


这个提示:第三行代码: p= i 提示: cannot convert int[2][3] to int(*)[2] in assignment  
请问这个是什么回事啊? 

搞了几个小时了还没搞懂, 希望有知道的朋友帮忙解释一下上面这几个代码,谢谢

[解决办法]
http://topic.csdn.net/u/20091123/11/0c03d2e2-0655-4634-8287-0e2315d889fc.html?64954

int (*p)[3];
[解决办法]
*(*p + 1)=*(*(p+0)+1)=a[0][1]这么理解吧
[解决办法]
p在这里其实是个二级指针,p指向数组首地址,*p指向第一行的首地址 (*p + 1)就是第一行的指针后移一位,
*(*p + 1)就是取后移后这个地方的值,也就是20,最后再加上2,即22

热点排行