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

admin2010-01-10  34

问题 若有如下程序段:    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

答案8

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

最新回复(0)