有以下程序 #include <stdio.h> main() { int x[3][4] = {1,3,5,7,9,11,2,4,6,8,10,12} ; int (*p)[4] = x, k = 1, m, n = 0; for(m=0;

admin2020-06-16  12

问题 有以下程序
#include <stdio.h>
main()
{  int x[3][4] = {1,3,5,7,9,11,2,4,6,8,10,12} ;
   int (*p)[4] = x, k = 1, m, n = 0;
   for(m=0; m<2; m++) n += *(*(p+m)+k);
   printf("%d\n",n);
}
程序的运行结果是

选项 A、10
B、20
C、14
D、16

答案C

解析 *(*(p+m)+k)系统默认为指针指向数组中第[m][k]个元素,因此,在for循环中,n += *(*(p+m)+k);执行的是将数组x[0][1]和x[1][1]累加后赋值给n,最后进行输出,答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/EZCp777K
0

最新回复(0)