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

共用体

  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; }

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...