C语言中的结构和联合之间的区别

结构体

结构是用户定义的数据类型。它用于将不同类型的数据合并为一个类型。它可以具有多个成员和结构变量。关键字“ struct”用于定义C语言的结构。可以使用dot(。)运算符来访问结构成员。

这是C语言结构的语法,

struct structure_name {
   member definition;
} structure_variables;

这里,

  • structure_name-结构的任何名称。

  • 成员定义-成员变量集。

  • structure_variable-这是结构的对象。

这是C语言结构的示例,

示例

#include <stdio.h>
#include <string.h>

struct Data {
   int i;
   long int f;
} data, data1;

int main( ) {
   data.i = 28;
   printf("The value of i : %d\n", (data.i));
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

输出结果

这是输出

The value of i : 28
Memory size occupied by data : 16 16

联盟

联合也是用户定义的数据类型。工会的所有成员共享相同的内存位置。工会的大小由最大工会会员的大小决定。如果要对两个或多个成员使用相同的内存位置,则最好使用并集。

联合类似于结构。联合变量的创建方式与结构变量相同。关键字“联合”用于定义C语言中的联合。

这是C语言中的并集的语法,

union union_name {
   member definition;
} union_variables;

这里,

  • union_name-给工会的任何名字。

  • 成员定义-成员变量集。

  • union_variable-这是联合的对象。

这是C语言中的联合示例,

示例

#include <stdio.h>
#include <string.h>

union Data {
   int i;
   float f;
} data, data1;

int main( ) {
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

输出结果

这是输出

Memory size occupied by data : 4 4