秒速网站建设,万城建设网站,未被列入失信被执行人名单查询,php大型网站开发书籍共用体 union 共用体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... }; 共用体所有成员变量#xff0c;所占空间重叠#xff0c;占共同的空间。
枚举
将变量的值一一列举出来。
enum 枚举类型名…共用体 union 共用体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... }; 共用体所有成员变量所占空间重叠占共同的空间。
枚举
将变量的值一一列举出来。
enum 枚举类型名 { 枚举常量1, 枚举常量2, 枚举常量3, .. };
注意 1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值 2.枚举常量的值总是前一个枚举常量的值1,第一个默认为0值 3.枚举常量默认为int类型可以直接在程序中使用
#include stdio.henum weekday
{Mon 1,Tue,Wed,Thu,Fri,Sat,Sun
};int main(void)
{enum weekday day;printf(请输入今天星期几:\n);scanf(%d, (int *)day);switch (day){case Monday:printf(1和6限号!\n);break;case Tuesday:printf(2和7限号!\n);break;case Wednesday:printf(3和8限号!\n);break;case Thurday:printf(4和9限号!\n);break;case Friday:printf(0和5限号!\n);break;case Saturday:case Sunday:printf(不限行!\n);}return 0;
}
利用typedef函数声明 用来声明新的类型名来达到给予类型的作用
typedef int I //I不是变量而是拥有int定义作用的新的类型名typedef int ARRAY[10] //ARRAY可以定义长度为十的一维整型数组
位运算
位运算符
位运算所有位运算要操作数的类型是与整形或者整形兼容或者枚举也可以但是指针结构体这些都不可以不与整形兼容 运算符含义运算符含义按位与指定位清零~取反|按位或指定位置1左移左移一位该数乘以2^按位异或指定位翻转同0异1 右移算术右移右移一位该数除以2
位运算符中除~以外均为二目运算符即要求两侧各有一个运算量。运算量只能是整型或字符型数据。左移之后不够补0可以实现某一位 置1。右移不够向右补0右移分为算术右移有符号前面补1也可以补0取决于i的正负正补 0负补1逻辑右移无符号前面补0
位运算举例
1.按位异或实现数据交换:
a a ^ b;
b a ^ b;
a a ^ b;
2.将能被三整除的比特位 置1.
int main(void)
{unsigned int i 0;unsigned int j 0x422;int k;{for(k 0;k 32; k){if(k % 3 0){i | (1 k);}}}printf(%x\n,i);return 0;
}
3.计算1的个数
int main(void)
{unsigned int i 0x3;int counter 0;int k;for(k 0;k 32; k){if(i (0x80000000)){counter;}i i 1;}printf(%d\n,counter);return 0;
}