有以下程序: #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

admin2019-06-12  27

问题 有以下程序:
#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/ZjRp777K
0

最新回复(0)