跳至主要內容

09.结构体 、共同体

约 323 字大约 1 分钟

结构体 ( struct )

结构体是一种用户定义的复合数据类型,用于表示一组相关联的数据项。

struct 结构体名称 {
    数据类型1 成员1;
    数据类型2 成员2;
    // 更多成员...
};
struct Rectangle {
    int width;
    int height;
};

int main() {
    struct Rectangle a;
    struct Rectangle b;
    a.width = 1;
    a.height = 2;
    printf("width: %d \n", a.width);
    printf("height: %d \n", a.height);
    return 0;
}

共用体(union)

共用体是一种特殊的数据类型,它允许在同一个内存位置存储不同类型的数据。共用体的所有成员共享同一块内存空间,因此共用体的大小取决于它的最大成员。

union 共用体名称 {
    数据类型1 成员1;
    数据类型2 成员2;
    // 更多成员...
};
union  Rectangle {
    int width;
    int height;
};

int main() {
    union Rectangle a;
    union Rectangle b;
    a.width = 1;
    a.height = 2;
    b.width = 3;
    b.height = 4;
    printf("width: %d \n", a.width);
    printf("height: %d \n", a.height);
    printf("width: %d \n", b.width);
    printf("height: %d \n", b.height);
    return 0;
}

区别

1.结构体用于组织不同类型的数据,每个成员都有自己的内存空间,可以同时存储多个数据;
2.共用体用于节省内存空间,所有成员共享同一块内存,只能同时存储一个数据。