int (*b)[N/M]=(int (*)[N/M])a

昨天腾讯笔试题一道选择题:
请选择下列程序的输出结果是()
#include <stdio.h>
intmain()
{
constintN=10;
constintM=2;
int* a=newint[N];
for(inti=0;i<N;++i)
a[i]=(0==i%2)?(i+2):(i+0);
int(*b)[N/M]=(int(*)[N/M])a;
for(inti=0;i<M;++i)
for(intj=0;j<N/M;++j)
printf(“%d”,b[i][j]);
return0;
}
做java的看到这题一脸懵逼,
int (*b)[N/M]=(int (*)[N/M])a;主要是这句不理解
全部评论
b是一个指针,指向长度为5的int数组,这句话是把a的地址赋给b,b指针加1会移动5个数字的偏移
点赞 回复 分享
发布于 2017-09-14 14:49

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务