赞
踩
c的数据类型:
基本数据类型:char、 short、 int、 double、 float、 long
构造数据类型:数组、指针、结构体、共用体、枚举
结构体是一种用户自定义的数据类型,用于存储相同的或者不同的数据的构造数据类型。
。
1.3.1 间接初始化和赋值
案例:
1.3.2 直接初始化和赋值
将变量直接放在结构体类型后面进行定义。
1> 直接初始化,可以省略结构名
2> 如果省略结构名,则只能使用已有的结构体变量
案例:
数组:一次性定义多个数据类型相同的变量
结构体数组:一次性定义多个类型相同的结构体变量
1.4.1 间接初始化结构体数组
1.4.2 直接初始化结构体数组
结构体指针用来存储结构体变量的地址。
案例:
1】 通过结构体变量 . 访问内部成员
2】 通过结构体指针 -> 访问内部成员
1.结构体各个成员的地址是连续的
2.结构体变量的地址是第一个成员的地址
3.64位操作系统,8字节对齐::
1> 结构体的总字节大小是各个成员字节的总和,但是需要满足是最宽成员的倍数
2> 结构体的首地址是最宽成员的倍数
3> 结构体各个成员的偏移量是该成员字节的整数倍,否则填充空字节
4.32位操作系统,4字节对齐:
i.结构体的总字节大小是各个成员字节的总和,但是需要满足是最宽成员的倍数
如果最宽成员是1,则是1的倍数
如果最宽成员是2,则是2的倍数
如果最宽成员是4,8,则是4的倍数
ii.结构体的首地址是最宽成员的倍数
iii.结构体各个成员的偏移量是该成员字节的倍数,否则填充空字节
如果成员字节是1,则偏移量是1的倍数
如果成员字节是2,则偏移量是2的倍数
如果成员字节是4,8,则偏移量是4的倍数
可以是相同数据或者不同数据,共同使用一个内存空间。是一种构造数据类型。
可以将一个段内存,去存放不同的数据类型。
union 共用体名 { 数据类型 变量名1; 数据类型 变量名2; 数据类型 变量名3; ... 数据类型 变量名n; }; 解释: 1. union 是共用体的关键字 2. 共用体名,要符合命名规则,可以省略 3. {}不可以省略 4. 共有体的成员类型,可以是基本数据类型,也可以是构造数据类型 5. 成员变量的个数任意 6. 分号不可以省略 eg : //定义一个共用体 union Test { int num; //整型变量 4 double key; //双精度浮点型 8 char a; //字符型 1 };
1】 定义共用体以及初始化和结构体的定义几乎一致,但是,由于共用体的成员都使用一份内存空间,所以在初始化时只需要给定义一个值即可,而这个值需要与第一个变量的类型保持一致。
2】 共用体的每个成员变量的地址相同
3】 共用体的变量,不能当做函数的形参
4】访问共用体成员,可以通过共用体变量.访问,也可以通过共用体指针->访问
5】共用体的大小是成员变量的最大属性的类型大小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。