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

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

2012-02-06 
一道考研究生试题,不明白#include stdio.hvoidprt(int*b){inti,jint(*a)[3](int(*)[3])bfor(i0i 2

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

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

热点排行