关键区别——c语言中的结构与联合
数组是C语言支持的数据结构。数组可用于存储相同类型的数据元素。如果有一个语句是int marks[10];那么marks是一个数组,可以存储10个标记,并且所有这些标记都是整数。有时需要将不同类型的数据元素存储在同一个内存位置。例如,员工可以有员工ID、姓名、部门、年龄等,它们属于不同的数据类型。因此,有必要有一种方法将各种数据元素作为一个单元来存储。C语言中的结构和联合用于将不同类型的数据元素存储在同一个内存位置。结构和联合是相似的,但主要是由于内存分配的不同而不同。存储结构变量所需的内存是所有成员内存大小的总和。存储联合变量所需的内存是联合中最大元素所需的内存。这是C语言中结构与并集的关键区别,本文讨论了C语言中结构与并集的区别。
目录
1. 概述和主要区别
2. C语言中的结构是什么
3. 什么是C中的联合
4. C语言中结构与并集的相似性
5. 并排比较-表格形式的C中的结构与并集
6. 摘要
什么是c中的结构(structure in c)?
结构是C语言中用户定义的数据类型,它有助于组合不同类型的数据项。结构可以表示记录。学生可以有student_id、student_name等,而不是分别存储每个变量,所有这些不同的数据项可以使用一个结构压缩成一个单元。它是使用关键字“struct”定义的。在一个结构中,它的所有成员都可以在任何时间。那个下面创建一个派生数据类型struct Student。
结构学生{
学生证;
学生姓名[20];
};
对于上面的结构,变量可以声明如下。
构建学生1,学生2,学生3;
有两种方法可以访问结构的成员。即使用成员运算符(.)和结构指针运算符(->)。可以使用结构“变量”名称访问成员。成员名称。如果程序员想访问学生2的名字,那么他可以把语句写成printf(student2.student_namename);
参考下面的程序和一个结构。
根据上述程序,学生是一个结构。它包含学生id和学生姓名。主程序中声明了结构类型的两个变量。他们被称为student1和student2。使用成员操作符作为student1,将student1的id指定为值1。student\u id=1。“Ann”是一个字符串。因此,它使用字符串复制函数strcpy复制到学生名称成员。id和名称以类似的方式分配给student2。最后,使用成员操作符打印这些值。
存储结构变量所需的内存量是所有成员的内存大小之和。学生编号包含4个字节,学生姓名包含20个字节(每个字符一个字节)。24字节的总和是结构所需的总字节数。
什么是c中的并集(union in c)?
联合是C语言中用户定义的数据类型。它有助于在同一内存位置存储不同的数据类型。一本书可以有诸如Book_name、price等属性,而不是为每个属性创建变量,而是使用union将所有不同的数据类型压缩到一个单元中。它是使用关键字“union”定义的。
银联簿{
字符名称[20];
双倍价格;
};
对于上面的联合,变量可以声明如下。
联合书第1册,第2册;
有两种方法可以访问工会成员。即使用成员运算符(.)和结构指针运算符(->)。可以使用union_variable_name访问成员。成员名称。如果程序员想访问book1的名称,那么他可以将语句写成printf(book1.name);
用一个接头引用下面的程序。
根据上面的程序,这本书是一个联合体。book1是union类型的变量。名称和价格是赋值的。在union中,一次只能访问它的一个成员,而所有其他成员都将具有垃圾值。id的值打印不正确,但价格值打印正确。
根据上面的程序,书是一个联合体。book1和book2是联合类型变量。首先,指定book1 name的值并将其打印出来。然后指定book2 name的值并将其打印出来。所有成员都能正确打印,因为一次只能使用一个成员。存储联合所需的内存是联合的最大元素所需的内存。程序名中的变量是20字节。它比价钱大。因此,联合的内存分配是20字节。
结构(structure)和c中的并集(union in c)的共同点
- C中的Structure和Union都是用户定义的数据类型。
- C语言中的结构和联合都可以用来在同一个内存位置存储不同的数据类型。
结构(structure)和c中的并集(union in c)的区别
C语言中的结构与联合 | |
结构是C语言中用户定义的数据类型,它允许将不同类型的数据组合在一起。 | Union是C语言中用户定义的数据类型,它允许将不同类型的数据组合在一起。 |
无障碍 | |
在结构中,可以随时访问其所有成员。 | 在联合中,一次只能访问它的一个成员,而所有其他成员都将包含垃圾值。 |
内存分配 | |
存储结构变量所需的内存是所有成员内存大小的总和。 | 存储联合变量所需的内存是联合中最大元素所需的内存。 |
关键字 | |
用于定义structure的关键字。 | 用于定义联合的关键字是“union”。 |
总结 - 结构(structure) vs. c中的并集(union in c)
数组用于存储相同类型的数据元素。有时需要将不同类型的数据元素存储在同一个内存位置。C语言提供了结构和联合来完成这一任务。两者都是用户定义的数据类型。存储结构变量所需的内存是所有成员内存大小的总和。存储联合变量所需的内存是联合中最大元素所需的内存。这就是C语言中结构和并集的区别。