问题 单项选择题

有以下程序  #include <stdio.h>  main( )  {int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;   *q=*(p+5);   printf("%d %d\n",*p,*q);  }  程序运行后的输出结果是()

A、运行后报错

B、6 6

C、6 11

D、5 10

答案

参考答案:C

解析:

本题中第一行代码对指针P进行了初始化,其指向数组a的第6个元素,在其后的操作中p的值也没有改变过,所以最后输出*p=* (p+0) =a [5] =6,而第二行代码中对q指向的值进行赋值,等价于*q=a[10]=11,所以输出结果*q为11。

填空题
多项选择题