我们都知道c语言中有自定义类型,而自定义类型中,我们经常需要使用结构体类型,今天我们就来探究结构体中的数据是如何存储的。
试想一下,S1、S2、S3的数据各占几个字节??
大概的答案都是:5 6 7
因为这种思考方式都是将里面的数据按大小依次排列,int类型占4个字节,char类型占1个字节,故S1占4 + 1 = 5个字节,S2、S3以此类推,但是事实是这样的吗??
正确的结果如下:
至于为什么会这样,下面我们将对结构体的存储方式进行解析。
这是S1的起始位置:
右边的数字(0,1...)代表着偏移量,每一个数据都有偏移量
<