下面的程序段对于二维数组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; }
时间: 2024-01-18 07:04:46 浏览: 149
程序段应该修改为如下内容:
```
#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)); //用数组名使用地址法访问a[i][j]
printf("\n");
}
int (*p)[4]; //定义指向一行(4个int)变量的指针变量p
p = a;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++)
printf("%3d", *(*(p + i) + j)); //用指针变量p地址法访问数组元素a[i][j]
printf("\n");
}
return 0;
}
```
在第一个空白处,需要使用数组名 a 和地址运算符来访问二维数组元素,因此应该填写 `*(a[i] + j)`。在第二个空白处,需要定义一个指向一行(4个int)变量的指针变量 p,并将其指向数组 a 的首地址,然后使用指针变量 p 和地址运算符来访问数组元素,因此应该填写 `*(*(p + i) + j)`。
阅读全文