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,移动位置。