struct和柔性数组:
C语言中的struct可以看作变量的结合
柔性数组即数组大小待定的数组,C语言中可以由结构体产生柔性数组,原因是C语言中结构体的最后一个元素可以是大小未知的数组
柔性数组的用法:
struct SoftArray
{
int len;
int array[];
}
struct SoftArray* sa = NULL;
sa = (struct SoftArray*)malloc(sizeof(struct SoftArray)+sizeof(int)*5);
sa->len = 5;
柔性数组的大小如图所示:
C语言中的union:
C语言中的union在语法上和struct相似,但是union之分配最大成员空间,所有成员共享这个空间,具体情况如下图所示:
union的使用受系统大小端的影响:下图是在大小端模式下,数据存储的位置
读取的时候都是从小端开始读取的,可以根据此特性来判断系统的大小端。