在 C 中使用结构的浅拷贝

Shallow Copy with Structs in C

假设您有以下结构:

typedef struct {
    int age;
} Child;

typedef struct {
    int age;
    Child firstChild;
} Parent;

int main() {
    Parent p1 = {5, {3}};
    Parent p2 = p1;
}

当您将 p1 复制到 p2 时,您是在两个字段上还是仅在 Child 字段上执行浅表复制?我的猜测是 age 是按值复制的,但是 firstChild 是浅复制的。

除(可能)对齐位外的所有内容都将被复制。

当你有指针时,指针的将被复制(地址),而不是它们指向的内容。这就是你可以称之为 "shallow".