结构与联盟:差异与比较

Structure 和 Union 在程序设计中用来促进变量的功能、数据的流动和操作数据的能力。 处理变量是一个非常重要的过程,因为它可以帮助我们定义可以处理数据的复杂算法结构。

同样,C 编程语言提供了两种变量类型:结构和联合。

从表面上看,它们似乎都具有非常相似的功能,并且在某些情况下,它们也可以用于相同的功能! 但是,它们之间存在一些差异, 知道 这有助于区分这些术语。

关键精华

  1. 结构是不同数据类型的变量的集合,而联合是共享同一内存位置的变量的集合。
  2. 结构允许将不同数据类型的多个变量分组,而联合允许不同的变量占用相同的内存空间。
  3. 结构用于数据组织,而联合用于数据优化和节省内存空间。

结构与联盟

结构是不同数据类型的相关变量的集合,可以使用点表示法访问。 联合是一种数据类型,允许将多个变量存储在同一内存位置,一次只能使用一个成员。 在处理不同数据类型的变量时,它对于节省内存很有用。

结构与联盟 1

对比表

比较参数结构工会
定义结构将不同的项目分配到不同的内存位置。Union \将不同的内存项分配到同一位置。
句法struct struct1{数据类型1;数据类型2;…}变量1,变量2,…;union union1{数据类型 1;数据类型 2;…}variable1; 变量 2, …;
关键字结构 工会 
内存 所有数据类型都在单独的内存位置。所有数据类型都在同一个内存位置。
尺寸存储大小是所有数据项大小的总和。存储大小是最大数据类型的值。

什么是结构?

结构是可以同时保存多种类型数据项的变量。 然而,值得注意的是,一个结构所持有的数据项可以是不同的数据类型。

另请参阅:  Microsoft Kaizala vs 团队:差异与比较

因此,该结构是一种非常有用的存储、访问和操作数据的方式。 使用“struct”语句定义结构。 要了解什么是关键字,我们 将有 稍微了解一下语言的概念。

在任何编程语言中,不仅仅是C,我们都需要使用关键字或命令来帮助编译器识别已调用的某个函数,并据此执行。 

结构的语法遵循以下模式:

结构结构名称{

字符名字[10];

字符姓氏[10];

年龄;

字符地址[20];

};

此结构已命名为“structure_name”,定义后可在函数中的任何位置调用。 它也可以根据需要多次调用。 我们可以看到该结构具有一些数据项作为其属性。

他们是一个人的名字, 姓氏 该人的姓名、年龄和住址。 请注意结构中如何存在不止一种数据类型。 所有这些数据类型都有单独的存储位置。 

默认情况下,结构中的所有成员都是公共的。 所谓公共,是指所有其他函数和对象都可以访问结构中的所有数据类型。 但是,可以将此属性更改为私有以保护数据。

结构体

什么是联盟?

联合是一种在内部存储各种数据项的数据类型。 这可以在编程语言 C 中找到,它有助于在程序中插入、操作和访问数据。

然而,值得注意的是,联合体不能容纳不同数据类型的数据项,这在一定程度上限制了它们与结构体相比的能力。

当我们定义或调用联合体时,它与我们调用结构体的方式几乎相同。 union 的关键字仅为“union”,后跟程序员希望提供的联合名称。

另请参阅:  Hadoop 与 SQL:差异与比较

union 的语法如下:

工会 工会名称{

数据对象 1;

数据对象 2;

...;

};

与结构类似,联合定义后可以在函数、其他类和对象中的任何地方使用。 联合可以根据需要多次使用。

联合占用的内存空间将与容纳联合中提到的最大数据类型所需的内存相同。 

工会

结构和联合之间的主要区别

  1. Structure 和 Union 之间的主要区别在于,结构是变量,可以容纳其他变量并为它们分配单独的内存空间。 相反,联合将变量分配到相同的内存空间。
  2. 结构关键字是“struct”,而联合关键字是“union”。
  3. 结构可以同时存储多个值,而联合只能同时存储一个值。
  4. 结构可以帮助以一种方式查看单个内存位置。 联合有助于以多种方式查看单个内存位置。
  5. 结构不能是匿名的。 但是,联合可以声明为匿名。
参考资料
  1. https://www.bell-labs.com/usr/dmr/www/chist.pdf
  2. https://asa.scitation.org/doi/pdf/10.1121/1.401205

最后更新时间:11 年 2023 月 XNUMX 日

点1
一个请求?

我付出了很多努力来写这篇博文,为您提供价值。 如果您考虑在社交媒体上或与您的朋友/家人分享,这对我很有帮助。 分享是♥️

关于“结构与联盟:差异与比较”的 20 个思考

发表评论

想保存这篇文章以备后用? 点击右下角的心形收藏到你自己的文章箱!