Linux C ————10、结构体和共用体

本文详细介绍了C语言中的结构体和共用体的概念及应用。结构体能够组织不同类型的数据,方便管理和操作复杂数据集合。共用体允许多个变量共享同一段内存,适用于需要节省内存空间的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际生活中,有大量的由不同性质的数据构成的实体,如通信录就是由姓名、地址、电话号码等信息组成。对于这种实体,用数组是难以描述的,因此,C语言提供了一种被称为结构体造型数据类型,结构体类型为处理复杂数据类型提供了便利手段。

定义和使用结构体

结构体与数组类似,都是有若干分量组成的,与数组不同的是,结构体的分量可以是不同类型,可以通过成员变量名来访问结构体的元素。

结构体的定义说明了他的组成成员,以及每个成员的数据类型。

struct 结构体名{
数据类型 成员名1;
数据类型  成员名2;
数据类型 成员名3;
.........
}

例如定义一个结构体student,用他来存储学生的基础信息:

struct student{
int Stunumber;
char name[10];
char class[10];
}

结构体变量的说明:

struct 结构体名  结构体变量名;

引用结构体成员方法

结构体变量名.成员n

结构体变量赋值:

结构体变量名.成员n=数值

指向结构体的指针

当一个指针用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构变量的首地址,通过结构指针即可访问该结构变量。这与数组指正和函数指针的情况是相同的。结构体指针变量定义的一般形式为:

struct 结构体类型名 *结构体指针变量名

赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量。如果student1是被说明为struct student类型的结构体变量则:

p=&student1;

通过结构体指针可以实现对结构体变量的赋值操作:

p->name="hps";

p->Stunumber="2015122222";

p->calss="遥感1班"

共用体

在C语言中,允许几种不同类型的变量存到到同一段内存单元中,也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,被称为共用体类型结构,简称共用体。一般定义为:

union 共用体名{

数据类型 成员1;
数据类型 成员1;
........
}

只有定义了共用体变量才可以在之后的程序中引用它。不可以直接引用共用体变量,而只能引用共用体变量中的成员。

共用体变量名.成员名

使用typedef定义类型

在C语言中,除系统定义的类型和用户自定义的结构体、共用体等类型外,还可以使用类型说明符typedef定义新的类型来代替已有的类型。typedef语句的一般形式为:

typedef 已知类型名 新的类型名

例如:

typedef int   INTERNET;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值