可能重复:
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;
答案 0 :(得分:5)
这就是我要搜索的内容:
links[0] = (Link) {nodes[0], nodes[1], 5};
答案 1 :(得分:1)
您是否询问是否可以分配结构?如果是这样,答案是肯定的。
答案 2 :(得分:-1)
这不起作用,因为Link
不能包含其他Link
。
但是,它可以包含指针到另一个Link
(Link*
)。
关于赋值:您只能在初始化值时使用大括号语法,而不能在设置值时使用。 (我相信这在C ++ 0x / C ++ 11中有所改变。)