C - 错误:令牌之前'{'预期表达式|


  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} 处显示错误;表达式语法错误。请帮忙。.提前致谢

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

struct node a={10,&b};

否则,您必须使用复合文字 [在 c99 和上方

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

立即初始化变量:

struct node a={10,NULL};

然后分配地址:

a.next = &b;

或者使用复合文字:

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

相关内容

  • 没有找到相关文章