读书人

一道考研究生试题,不明白解决思路

发布时间: 2012-02-06 15:52:45 作者: rapoo

一道考研究生试题,不明白
#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维数组指针

这是个为考试而考的题目 现实中没人这么做吧

读书人网 >C++

热点推荐