以下C语言程的输出结果是(  )。(2016年嵌入式系统设计师)
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
 
 



 
 
参考答案:B
参考解析:data是s类型的数组,用{10,100,20,200}赋值,可知:
data[0].x=10
data[0].y=100
data[1].x=20
data[1].y=200
struct s *p,p是data数组的指针。指向数组的第一个元素,*p即为data[1]。
p->x和(*p).x是一样的,p->x和data[0].x等价。所以在++(p->x)之后,data[0].x的值变为11。输出11。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:https://scpro.cn/v/e29004c3b77b11ee.html

最近发表