问题
单项选择题
以下程序运行后的输出结果是
#include<stdio.h>
struct st
int x,y; data[2]=1,10,2,20;
main( )
struet st *p=data;
printf("%d,",p->y);printf("%d\n",(++p)->x);
A) 10,1
B) 20,1
C) 10,2
D) 20,2
答案
参考答案:C
解析: 正确地给结构体数组赋初值,data[0].x=1、data[0].y=10、data[1].x=2、data[1].y=20;首先,p指向data[0],第一条打印语句输出p->y,即data[0].y的值10;(++p)->x含义是先++p,此时p指向data[1],第二条打印语句输出(++p)->x,即dala[1].x的值2。