C语言(三)结构体与联合体

1.结构体的概念

在这里插入图片描述
在这里插入图片描述
结构体用struct 表示,结构体可以包含整型,字符型,数组,指针等。
typedef struct 结构体 名字 //更改名字,方便与下面书写方便(小名字)
用typedef定义类型的方法:
① 先按定义变量的方法写出定义体(如:int i)。
② 将变量名换成新类型名(例如:将i换成COUNT)。
③ 在最前面加typedef
(例如:typedef int COUNT)。
④ 然后可以用新类型名去定义变量。
定义结构体变量 用{ }
因为结构体是是通过结构体变量访问成员,所以访问时,要在加个 . 在变量和结构体之间。
而指针类型的话,要在变量和访问结构体之间加个 ->
而为什么malloc只分配给体它一个字节呢?
是因为在这个字节里,存放的是一个地址,通过这个地址,可以找到结构体的地址。

2.结构体数组,结构体指针数组的赋值与输出。

在这里插入图片描述
在这里插入图片描述

3.结构体struct的长度

在这里插入图片描述
偏移量是距离开头的位置。
eg : int a; 4byte
char b; 1byte
short c; 2byte
struct的字节总长度是 : 8byte

4.联合体.

在这里插入图片描述
在这里插入图片描述
注释 字节序:小端字节序,高字节存放在高地址,低字节存放在低地址;
大端字节序,高字节存放在低地址,低字节存放在高地址;
联合体的总字节长度是以最长成员的字节长度来定义,所有的成员共享内存;用到时再调用。
结构体声明:union

与结构体相比,内存小,结构体定义变量多了,总长度就大,内存就耗的越多。

eg: 大小端转换

在这里插入图片描述
整型int 是4byte 32bite 是把byte当做8bite,移动位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值