问题 单项选择题

以下程序的输出结果是( )。
#include<stdio.h>
struct st
int x; int *y; *p;
int dt[4] = 10,20,30,40 ;
struct st aa[4]= 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0];
main()
p=aa;
printf("%d\n",++(p->x));

A.10

B.11

C.51

D.60

答案

参考答案:C

解析: 由于数组名保存了数组的首地址,即数组中第一个元素的地址,执行p=aa;后,p指向aa[0],p->x相当于aa[0].x,也就是50,经过自增运算后,显示结果为51。

解答题
单项选择题