问题 单项选择题

以下程序运行后,输出结果为______。 main() { int a[2][3]={1,3,5,7,9,11},*s[2],**pp,*p: s[0]=a[0],s[1]=a[1]; pp=s; p=(int*)malloc(sizeof(int)); **pp=s[1][1]; p=*pp; printf("%d\n",*p); }

A.1

B.7

C.9

D.11

答案

参考答案:C

解析:[评析] s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[0]的地址。**pp=s[1][1]后,a[0][0]的值将被赋值为a[1][1]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][0]。

选择题
单项选择题