有以下程序 #include strutct tt { int x;struct tt *y;)*p; struct tt a[4]={20,a+1,15,a+2, 30,a+3,17,a}; main()

admin2020-11-23  23

问题 有以下程序
    #include
    strutct tt
    { int x;struct tt *y;)*p;
    struct tt a[4]={20,a+1,15,a+2,
    30,a+3,17,a};
    main()
    {  int  i;
    p=a;
    for(i=1;i<=2 ; i++)
    {printf("%d,",p->x);p=p->y;}
    }
    程序的运行结果是

选项 A、20,15,
B、30,17
C、15,30,
D、20,30,

答案A

解析 程序定义了结构体类型tt,其成员包括一个整型数据x和指向其自身结构的指针变量v。程序在定义结构体数组a的同时对其进行了初始化。其元素a[0]的成员y被赋值为元素a[1]的地址,a[1].y被赋值为a[2]的地址,a[2].y被赋予a[3]的地址,a[3].y被赋予a[0]的地址。这就形成了一个单向的循环链表,每个元素的指针成员都指向下一个元素的地址。在主函数中,通过一个for循环语句,输出该链表前2个节点数值成员的值,即a[0].x和a[1].x。
转载请注明原文地址:https://kaotiyun.com/show/Oq3p777K
0

最新回复(0)