下面的程序的输出为( )。 struct A { int m; int*n: }*p; int data[4]={10,20,30,40); struct A aa[4]=50,&data[0]

admin2013-08-15  42

问题 下面的程序的输出为(    )。
    struct A
    {  int m;
       int*n:
    }*p;
    int data[4]={10,20,30,40);
    struct A aa[4]=50,&data[0],60,&data[1],70,&data[2],80,data[3]};
    main()
    {  p=aa;
       printf("%d\n",++p->m);
       printf("%d\n",(++p)->m);
       printf("%d\n",++(*p->n));
    }

选项 A、10
20
20
B、 50
60
21
C、 51
61
20
D、60
70
31

答案C

解析 运算符->的优先级高于++和木。在第一条printf()语句中,先将aa[0]中成员m的值增1,再取其值,输出51;在第二条printf()语句中,先将p指针指向aa[1],然后取其成员m的值,输出60;在第三条printf()语句中,先取aa[1]的成员n(这时,n是一个指向数组元素data[1]的指针),然后将该指针所指存储单元的值20增1,输出21。
转载请注明原文地址:https://kaotiyun.com/show/6MJp777K
0

最新回复(0)