有以下程序: #include struet ord { int x,y;}dt[2]={1,2,3,4}; main() { struet ord*p=dt; printf("%d",++p->x);

admin2021-06-15  32

问题 有以下程序:
    #include
    struet ord
    {  int x,y;}dt[2]={1,2,3,4};
    main()
    {  struet ord*p=dt;
    printf("%d",++p->x);
    printf("%d",++P->y);
    }
    程序运行后的输出结果是(    )。

选项 A、1,2
B、2,3
C、3,4
D、4,1

答案B

解析 dt是一个结构体数组,所以初始化的结果为dt[0]={1,2},at[1]={3,4}。*P=dt;,表示p指向dt[0]。++P->x中,->的优先级大于++,所以表达式等价于++(P->x),因为P->x为1,所以输出这个值为2,同理,第二个++P->Y的值为2+1=3。
转载请注明原文地址:https://jikaoti.com/ti/alz0FFFM
0

最新回复(0)