C结构赋值可以使用大括号语法吗?

时间:2011-06-11 17:39:27

标签: c struct

  

可能重复:
  Struct initialization of the C/C++ programming language?

我正在重新学习C并且问自己这样的事情是否可行:

typedef struct Link {
    struct Node a;
    struct Node b;
    float weight;
    } Link;

Link links[LINK_NUMBER];
links[0] = {nodes[0], nodes[1], 5};

而不是:

Link link0 = {nodes[0], nodes[1], 5};
links[0] = link;

3 个答案:

答案 0 :(得分:5)

这就是我要搜索的内容:

links[0] = (Link) {nodes[0], nodes[1], 5};

答案 1 :(得分:1)

您是否询问是否可以分配结构?如果是这样,答案是肯定的。

答案 2 :(得分:-1)

这不起作用,因为Link不能包含其他Link

但是,它可以包含指针到另一个LinkLink*)。

关于赋值:您只能在初始化值时使用大括号语法,而不能在设置值时使用。 (我相信这在C ++ 0x / C ++ 11中有所改变。)