C语言—共用体,枚举,位运算

尾插

尾删

头删

共用体

不同的类型存放到同一段内存单元中。所占内存字节数不同,但均从同一地址开始,几个变量相互覆盖。

一般形式:

union  共用体名

{成员表列

}变量表列;

特点:
(1)同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一种,而不是同时存放几种。也就是说,每一瞬时只有一个成员起作用,其他的成员不起作用,即不是同时都存在和起作用。
(2)共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。 
(3)共用体变量的地址和它的各成员的地址都是同一地址。
(4)不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,又不能在定义共用体变量时对它初始化。

(5)不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用指向共用体变量的指针

(6)共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型定义中,数组也可以作为共用体的成员。
 

枚举:

将变量的值一一列举,变量的值仅限于列举出来的值范围内

说明:
(1)在C编译中,对枚举元素按常量处理,故称枚举常量。它们不是变量,不能对它们赋值。 
(2)枚举元素作为常量﹐它们是有值的,C语言编译按定义时的顺序使它们的值为0,1,2,3……
定义sun为 7, mon为1,以后顺序加1,sat为6。
(3〉枚举值可以用来作判断比较。 
枚举值的比较规则是按其在定义时的顺序号比较的。 
(4)一个整数不能直接赋给一个枚举变量。 

typdef

可以改变类型的名称,为已有数据类型起别名,使两名称具有相同效果。

位运算


 & 指定位清零;

| 指定位置1  ;

^ : (1)、使特定位翻转,不同取1,相同取0;

(2)、交换两值,不用临时变量

例:int i =3,j=5;

i ^=  j;

j ^= i;

i ^= j;

~  所有位都取反

<< 左移 ,按位补零;

>> 右移 , unsigned (逻辑右移)按位补零;有符号,正数补1,负数补0;

   

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值