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

admin2019-01-11  12

问题 有以下程序:
#include<stdio.h>
    struct ord
    { int x,y;}dt[2]={1,2,3,4);
    main()
    {  struct ord*p=dt;
       printf("%d,",++p->x);printf("%d,",++p->y);
    }
    程序的运行结果是(    )。【09年3月】

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

答案B

解析 本题考查结构体的运算与指针。dt[2]={1,2,3,4}的意思是dt是一个结构体数组,其中dt[0]={1,2),dt[1]={3,4}*P为ord型指针,指向dt的首地址。++p,则P指向下一个结构体。但是由于->的优先级高于++,所以Hp->x等同于++(p->x),它的意思是p指向的结构体的x元素再加1,而不是p指向下一个元素,因此第一个值为2,第二个为3。
转载请注明原文地址:https://kaotiyun.com/show/npxp777K
0

随机试题
最新回复(0)