问题
单项选择题
有以下程序: #include <stdio.h> struct S { int a, b; } data[2]={10, 100, 20, 200}; main() { struct S p=data[1]; printf("%d\n", ++(p.a)); } 程序运行后的输出结果是______。
A.10
B.11
C.20
D.21
答案
参考答案:D
解析: 声明data是结构S数组。初始化data[0].a=10; ,data[0].b=100; ,data[1].a=20: ,data[1].b=200。主函数中p=data[1]; ,即p.a=data[1].a; ,p.b=data[1].b; 。执行语句printf("%d\n", ++(p.a));打印输出时p.a先增1再打印,即p.a=data[1].a=20,先增1等于21。