error: expected expression before '{' token|

error: expected expression before '{' token|

  struct node{
        int data;
        struct node *next;
    };
main(){
    struct node a,b,c,d;
    struct node *s=&a;

    a={10,&b};
    b={10,&c};
    c={10,&d};
    d={10,NULL};


    do{
        printf("%d %d",(*s).data,(*s).next);

        s=*s.next;
    }while(*s.next!=NULL);

}

它在 a={10,& b} 处显示错误;表达式语法 error.please 求助.. 提前致谢

立即初始化变量:

struct node a={10,NULL};

然后分配地址:

a.next = &b;

或者使用复合文字:

a=( struct node ){10,&b};  //must be using at least C99

在定义时仅允许使用 方括号括起来的列表来初始化结构变量。使用

struct node a={10,&b};

否则,您必须使用 compound literal [在 c99 及以上]

a=(struct node){10,&b};