链表剩余的一些内容
一、共用体
union 共用体名 名称首字母大写
{
成员表列;
};
union Demo
{
int i;
short s;
char c;
};
int main(void)
{
union Demo d;
d.i = 10;
d.s = 100;
d.c = 200;
printf("%d\n", sizeof(d)); //结果为4
printf("%d\n", d.i) //结果为200
return 0;
}
共用体变量所占的内存长度等于最长的成员的长度。
共用体主要用来判断计算机是大端还是小端
二、枚举类型
声明枚举类型用 enum 开头
如果一个变量只有几种可能的值,则可以定义为枚举类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
enum Week
{sun,mon,tue,wed,thu,fri,sat};
int main(void)
{
enum Week w;
w = wes;
printf("%d\n",sizeof(w)); //结果为4
printf("%d\n", w); //结果为3
return 0;
}
也可以在声明里面赋值,如果将mon = 2,则后面tue 变为3,sun依旧为0。
三、用typedef定义类型
声明新的类型名代替已有的类型名。
typedef int INT; //INT变为类型名int
typedef int ARRAY[10];
ARRAY a; //表示数组
四、位运算
将参与运算的两个数据,按二进制进行运算。
与 全一为一,有零为零 指定位清零
或 有一为一,全零为零 指定位置1
异或 相同为假,不同为真
取反 指定位反转
左移 :从右往左移, 右边补0
右移:分为算数右移: 有符号型 数据为正左边补0,为负补1。
逻辑右移: unsigned 型 左边补零。
左移右移优先级五级, 自左至右
与 异或 或 依次为八、九、十级。自左至右。