一道考研究生试题,不明白
#include <stdio.h>
void prt(int *b)
{
int i,j;
int (*a)[3]=(int(*)[3])b;
for (i=0;i <2;i++)
{
for (j=0;j <4;j++)
printf( "%4d ",*(*a+2*j));
printf( "\n ");
a++;
}
}
void main(void)
{
int b[]={12,3,25,8,34,16,19,4,27,10};
prt(b);
}
请问这句int (*a)[3]=(int(*)[3])b;是什么意思 ,谢谢
[解决办法]
二维数组指针间的赋值.
[解决办法]
这时指针的型别是int(*)[3]
[解决办法]
int (*a)[3]=(int(*)[3])b;
=====================================
int (*a)[3]定义一个数组指针
(int(*)[3])b将b强制归整成前面的形式
我感觉不 像是赋值,更像是指针指向
[解决办法]
int (*a)[3]=(int(*)[3])b;//强制转换
一维数组首地址值强转为2维数组指针
这是个为考试而考的题目 现实中没人这么做吧