共用体(联合体)

  • 联合union是一个能在同一个存储空间存储不同类型数据的类型;
  • 联合体所占的内存长度等于其最长成员的长度,也有叫做共用体;
  • 同一内存段可以用来存放几种不同类型的成员,但每一瞬时只有一种起作用;
  • 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖;
  • 共用体变量的地址和它的各成员的地址都是同一地址。

案例

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

// 使用优点:节省内存空间
union Var
{
    int a;
    float b;
    double c;
    char d;
    short f[6];
};

int main(void)
{
    union Var var;
    var.a = 100;
    var.b = 3.14;

    // 最后一次值时有效的、其他会被覆盖
    printf("%d\n", var.a);
    printf("%f\n", var.b);

    // 大小根据最大类型字节算
    printf("%d\n", sizeof(var));

    // 所有类型公用一块内存
    printf("%p\n", &var);
    printf("%p\n", &var.a);
    printf("%p\n", &var.b);
    printf("%p\n", &var.c);

    return 0;
}
公用体 使用案例

相关文章:

  • 2021-07-23
  • 2021-10-28
  • 2021-06-17
  • 2022-01-21
  • 2021-10-01
  • 2021-07-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-20
  • 2021-11-01
  • 2021-07-22
  • 2022-12-23
相关资源
相似解决方案