读书人

数组指针:cannot convert int[2][3]

发布时间: 2012-04-19 14:36:43 作者: rapoo

数组指针: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

读书人网 >C语言

热点推荐