若有如下程序: main() {int a[][2]={1,2,6,9,11},(*t)[2]; t=a; printf("%d,%d\n",*(t[1]+1), (*t) [1]); } 则程序运行后输出的结果是【

admin2010-01-10  19

问题 若有如下程序:
   main()
   {int a[][2]={1,2,6,9,11},(*t)[2];
   t=a;
   printf("%d,%d\n",*(t[1]+1),  (*t)  [1]);
   }
   则程序运行后输出的结果是【  】。

选项

答案9,2

解析 本题开始定义了一个int型二维数组a,并赋以5个初值,系统使数组的最高维为3,并让a[0][0]=1,a[0][1]=2,a[1][0]=6, a[1][1]=9,a[2][0]=11,a[2][1]因为初值不够而初始化为0。然后定义一个行指针t指向数组a的首地址,因为表达式t[1]表示指向元素 a[1][0]的int型指针,t[1]+1表示指向a[1][1]的int型指针,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指针,故(*t)[1]返回的是a[0][1]的值2。所以正确答案应该为9,2。
转载请注明原文地址:https://jikaoti.com/ti/VgI0FFFM
0

最新回复(0)