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

admin2018-01-14  16

问题 有以下程序:
   #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\n",++p一>y);
   }
   程序运行后的输出结果是(    )。

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

答案B

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

最新回复(0)