编写程序,定义一个3*4的整型二维数组,定义的同时进行初始化,定义两个指针p和q,如下所示:int*p,(*q)[4];要

编写程序,定义一个3*4的整型二维数组,定义的同时进行初始化,定义两个指针p和q,如下所示:int*p,(*q)[4];要求分别通过指针p与指针q来输出二维数组.

是不是这个意思啊:
#include "stdafx.h"
#include "stdio.h"

void main(void){
int a[][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
int *p,(*q)[4],i,j;
p=&a[0][0];
q=&a[0];
printf("用p输出数组:");
for(i=0;i<12;i++){
if(!(i%4)) printf("\n");
printf("%6d ",*(p+i));
}
printf("\n用(*q)[4]输出数组:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%6d ",*(*(q+i)+j));
printf("\n");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-04
#include<stdio.h>
int main()
{
int a[3][4]={1,2,2,3,4,5,3,1,3,3,5,6},i,j;
int *p=a,(*q)[4]=a;
for(i=0;i<12;i++)
printf("%d ",p[i]);
printf("\n");
for(j=0;j<3;j++){
for(i=0;i<4;i++)
printf("%d ",*(*(q+j)+i));
}
return 0;
}
相似回答