什么是C语言中的结构并集?

联合是由C编程语言中的不同数据类型的多个变量共享的存储位置。

语法

结构并集的语法如下-

union uniontag{
   datatype member 1;
   datatype member 2;
   ----
   ----
   datatype member n;
};

示例

以下示例显示了结构并集的用法-

union sample{
   int a;
   float b;
   char c;
};

联合变量声明

以下是联合变量的声明。它有以下三种类型-

类型1

union sample{
   int a;
   float b;
   char c;
}s;

2型

union{
   int a;
   float b;
   char c;
}s;

类型3

union sample{
   int a;
   float b;
   char c;
};
union sample s;

  • 声明并集后,编译器会自动创建最大大小的变量类型以将变量保存在并集中。

  • 在任何时候,只能引用一个变量。

初始化和访问

  • 使用相同的结构语法访问联合成员。

  • 点运算符用于访问成员。

  • 箭头运算符(->)用于使用指针访问成员。

例子1

以下程序显示了结构并集的用法。

union sample{
   int a;
   float b;
   char c;
}
main ( ){
   union sample s = {10, 20.5, "A"};
   printf("a=%d",s.a);
   printf("b=%f",s.b);
   printf("c=%c",s.c);
}
输出结果

执行以上程序后,将产生以下结果-

a = garbage value
b = garbage value
c = A

结构的结合

  • 一个结构可以嵌套在一个并集内部,这称为结构的并集。

  • 可以在结构内部创建并集。

例子2

另一个C程序显示了结构并集的用法,如下所示-

struct x{
   int a;
   float b;
};
union z{
   struct x s;
};
main ( ){
   union z u;
   u.s.a = 10;
   u.s.b = 30.5;
   printf("a=%d", u.s.a);
   printf("b=%f", u.s.b);
}
输出结果

执行以上程序后,将产生以下结果-

a = 10
b = 30.5