大家看看这个int(*p)[3]的有关问题,小弟我想好久想不明白
大家看看这个int(*p)[3]的问题,我想好久想不明白
部分代码如下:
int b[3]={1,2,3};
int (*p)[3];
p=&b[0];
for(int i=0;i<3;i++)
printf("%5d",*(*p+i));
return 0;
为什么编译时出错?错误是 error C2440: '=' : cannot convert from 'int *' to 'int (*)[3]' ;
int(*p)[3]的意思不是定义一个含有3个整形元素的指针么,那p不是指针吗 ?p=&b[0] 有什么错 ,搞不懂、
------解决方案--------------------
&b[0]是对b的第一个元素的地址再取地址
------解决方案--------------------
理解下数组指针,和指针数组
看看
http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
部分代码如下:
int b[3]={1,2,3};
int (*p)[3];
p=&b[0];
for(int i=0;i<3;i++)
printf("%5d",*(*p+i));
return 0;
为什么编译时出错?错误是 error C2440: '=' : cannot convert from 'int *' to 'int (*)[3]' ;
int(*p)[3]的意思不是定义一个含有3个整形元素的指针么,那p不是指针吗 ?p=&b[0] 有什么错 ,搞不懂、
------解决方案--------------------
int b[3]={1,2,3};
int (*p)[3];
p=&b;
for(int i=0;i<3;i++)
printf("%5d",*(*p+i));
return 0;
&b[0]是对b的第一个元素的地址再取地址
------解决方案--------------------
理解下数组指针,和指针数组
看看
http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html