C-结构内的结构

Seg*_*ult 3 c structure

如果我有这些结构:

struct rec {
 int key;
 double value;
};

struct node {
 struct rec record;
 struct node *next;
};
Run Code Online (Sandbox Code Playgroud)

我必须将项目的字段值复制 struct rec *r到项目中struct node *n,

我可以这样做吗?

n->record.key = r->key;
n->record.value = r->value;
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

是的,您可以一次复制struct一个字段.您也可以一次性完成:

struct rec *r = ...;
struct node *n = ...;
n->record = *r; // Copies the content of "r" into n->record
Run Code Online (Sandbox Code Playgroud)

这样做的好处是每次修改结构时都不必重新访问复制代码struct rec.