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

admin2022-12-02  25

问题 有以下程序:
#include<stdio.h>
struct tt
{int x;struct tt*y;}s[3]={1,0,2,0,3,0};
main()
{struct tt*p=s+1;
p->y=s;
printf("%d,",p->x);
p=p->y;
printf("%d\n",p->x);
}
程序运行后的输出结果是(    )。

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

答案B

解析 结构体tt是一个递归定义,类似于链表,通过成员变量y链接起来。p=s+1指向s[1]。p->y指向s[2],但现在p->y=s,因此s[2]=s[0],此时s[]={1.0,2.0,1.0},而p在s[1]位置,因此p->x为2,p=p->y,p指向s[2],因此p->x=1,故打印结果为2,1。答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/IW0D777K
0

相关试题推荐
最新回复(0)