单选题
现有如下程序段
#include"stdio.h"
main()
int a[5][6]=23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1;
int i=0,j=5;
printf("%d/n",*(&a[0][0]+2*i+j-2));
则程序的输出结果为
A、
21
B、
78
C、
23
D、
28
【正确答案】
A
【答案解析】
[解析] 通过地址来引用二维数组;若有以下定义:int a[3][4],i,j;且当0≤i<3,0≤j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+ i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0] +2*i+j-2相当于是地址&a[0][0]加上多少偏移量。
提交答案
关闭