1.结构体
1.1结构体的存储
内存对齐:
char 按照1字节对齐
short 按照2字节对齐
int 按照4字节对齐
double 按照4字节对齐
结构体整体的大小必须为最大基本类型长度的整数倍
1.2结构体作为函数参数
int AB(struct student *p)
{
}
1.3结构体数组
struct student s[5];
2.共用体
union 共用体名
{
数据类型1 成员变量1;
数据类型2 成员变量2;
数据类型3 成员变量3;
...
};
共用体所有成员变量共享同一片空间
内存大小端:
1.内存小端:
内存低地址存放低数据位
内存高地址存放高数据位
2.内存大端:
内存低地址存放高数据位
内存高地址存放低数据位
3.枚举
enum 枚举类型名
{
枚举常量1,
枚举常量2,
枚举常量3,
..
};
1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值
2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值
3.枚举常量默认为int类型,可以直接在程序中使用
4.位运算运算符
& 按位与
| 按位或
^ 按位异或 相同为0 相异为1
~ 按位取反
>> 右移 右移n位 等价于 让该数 / 2^n
<< 左移 左移n位 等价于 让该数 * 2^n
按位异或实现数据交换:
a = a ^ b;
b = a ^ b;
a = a ^ b;
将变量的第n位置0:
num = num & ~(1 << n)
将变量的第n位置1:
num = num | (1 << n)