问题 单项选择题

若有如下程序段:
struct student
int num;float score;
stu[3]=10,85,60,58,32,23;
main()
struct student*t;
t=stu;

则下面表达式中值为58的是( )。

A.(*t).num

B.*(t++)->num

C.(*++t)score

D.(++t)->score

答案

参考答案:D

解析: 本题是以结构体指针的方式防问结构体数组中的元素。main()函数之前声明了一个结构体,并在声明同时定义了一个全局结构体数组stu[3]。主函数中,第一行定义了一个该结构体的指针t,然后让t指向stu,即t指向的是数组stu的第一个元素。选项A提取的是数组第一个元素的num成员,值为10,不符合题意。选项B使用了一个后缀自增运算符,使t指向第二个元素,但t++表达式返回的还是第一个元素的指针,故结果与选项A相同,不符合题意,选项C语法错误编译不会通过。故应该选择D。

问答题 简答题
多项选择题