以下C语言程序的输出结果是________。 StrUCt S { int x,y; }data[2]={10,100,20,200};. main() { struct s *p=data;

admin2017-11-27  27

问题 以下C语言程序的输出结果是________。
    StrUCt S
    {    int x,y;
    }data[2]={10,100,20,200};.
    main()
    {    struct  s *p=data;
    p++;
printf(”%d\n”,++(p一>x));
    }

选项 A、10
B、11
C、20
D、21

答案D

解析 本题主要考查对结构体数组的理解。在本题中结构体s有两个成员变量x和y。data是一个结构类型为s的结构体数组变量。按照C语言的地址分配,是以结构体为单位分配的,即先是结构体数组第一个结构体,接着是第二个,以此类推。
    本题中p指向了结构体数组变量data,就是指在data[0]的位置,当执行完p++;后,p就指向结构体的第二个单元了,即指向了data[1]的位置。所以,打印语句中p->x就是20,程序执行++(p->X)后,即为20加1,所以打印的值为21。
转载请注明原文地址:https://jikaoti.com/ti/fnI7FFFM
0

相关试题推荐
最新回复(0)