共用体、枚举类型、typedef定义,位运算
创始人
2024-11-14 11:04:36
0

共用体

  union 共用体名 
    {
        数据类型1 成员变量1;
        数据类型2 成员变量2;
        数据类型3 成员变量3;
        ...
    };
    共用体所有成员变量,所占空间重叠,占共同的空间。

枚举

将变量的值一一列举出来。

enum 枚举类型名 
    {
        枚举常量1,
        枚举常量2,
        枚举常量3,
        ..
    };

注意:

  •     1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值
  •     2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值
  •     3.枚举常量默认为int类型,可以直接在程序中使用
#include    enum 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; }

相关内容

热门资讯

微信炸金花房卡有没有购买/微信... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
终于找到“微信炸金花链接在哪里... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
微信炸金花房卡链接在哪弄的/怎... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
正版授权“微信牛牛房卡客服微信... 九酷大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
微信玩链接炸金花房卡/战皇大厅... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
买房卡的链接炸金花房卡/微信斗... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
一分钟了解“牛牛房卡哪里有卖的... 起点大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来...
微信群牛牛房卡怎么买/新九天大... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享受...
房卡必备教程“微信牛牛房卡在哪... 新全游牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡...
微信群链接拼三张房卡/新518... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
一分钟推荐“炸金花房卡链接怎么... 金牛座金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
微信里面炸金花房卡在哪买/新蓝... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
一分钟了解“哪里有卖微信炸金花... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
在哪里买斗牛微信房卡/茄子娱乐... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享受...
正版授权“牛牛房卡哪里有卖的”... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
炸金花房卡链接在哪弄的/牛牛房... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
微信炸金花房卡如何购买/悟空大... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
一分钟了解“炸金花房卡专卖店联... 新神盾是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享...
微信炸金花房间怎么弄/新皇豪大... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
ia实测“微信金花群怎么买房卡... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...