程序填空题:指针与二维数组
下面的程序段对于二维数组a:
(1)使用数组名a采用地址法访问数组元素
(2)指向一个有4个整型(int)变量的指针变量来访问数组元素
请填空完成程序的功能。
样例程序:
#include<stdio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",);//用数组名使用地址法访问a[i][j]
printf("\n");
}
//定义指向一行(4个int)变量的指针变量p
p=a;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",);//用指针变量p地址法访问数组元素a[i][j]
printf("\n");
}
return 0;
}
answer:
第1空:*(*(a+i)+j)
第2空: int (*p)[4];
第3空:*(*(p+i)+j)
(1)使用数组名a采用地址法访问数组元素
(2)指向一个有4个整型(int)变量的指针变量来访问数组元素
请填空完成程序的功能。
样例程序:
#include<stdio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",);//用数组名使用地址法访问a[i][j]
printf("\n");
}
//定义指向一行(4个int)变量的指针变量p
p=a;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",);//用指针变量p地址法访问数组元素a[i][j]
printf("\n");
}
return 0;
}
answer:
第1空:*(*(a+i)+j)
第2空: int (*p)[4];
第3空:*(*(p+i)+j)