问题 单项选择题

若有以下程序段: struct st {int n; int*m: }; int a=2,b=3,c=5; struct st s[3]=({101,&a},{102,&c},{103,&b)}; main() {struct st*p; p=s; } 则以下表达式中值为5的是( )。

A.(*p).m

B.*(p+1)->m

C.*(p++)->n

D.(p++)(*m)

答案

参考答案:B

解析:本题考查如何通过指针引用数组元素。首先定义了一个结构体,然后定义了一个结构体变量s[3],并赋了初值。在主程序中,定义了一个指向结构体变量s的指针p,要使表达式的值为5,就应该引用s[1].m的值,使指针p指向s[1],++p可以实现将p指针加1,指向s[1]。

单项选择题 A1/A2型题
单项选择题