10 25 操作符

1.整型的原反补码

整数在内存中存的是补码,

三种码相互转换,最前面的符号位不变

2.移位操作符

右移分两种,左移只有一种

移位操作符就是对整数的原反补码进行操作,得到新结果。

算数右移:空位补原符号位(正补0负补1)

(负数操作时,先变成补码再操作)

3.位操作符&(与:两个都是一返回1) |(或:有一个是1返回1)  ^(异或:两个不一样返回1)

写出补码按照各自的规则得到一个新数字,写出来就行了

例:实现变量值的交换    (设置第三个变量;加减运算得到结果;用位操作符)

异或的结论:0^a=a; a^a=0; 支持交换律; 不会有溢出的风险

按位或用于更改一个整数的二进制表达

0000000000000000000000000001101
0000000000000000000000000000010

得到

0000000000000000000000000001111

4.复合操作符

+= *=  >>=

5.单目操作符(只有一个操作对象,& !sizeof  ~ * ++ --)

&取地址用%p接受,取得是变量的第一个字节的地址

int* p=&a;p里面是a的地址,*p是a内部的值

(类型)   强制类型转换

++  --

*和指针变量配合使用,找到原变量

sizeof与数组:

//sizeof (arr) ->arr表示整个数组
//fun (arr)
{
sizeof (arr)  ->arr指的是首元素指针

关于数组:只有sizeof后面的数组名指的是整个数组,其他的都是首元素地址,是指针,4个字节

6.逻辑操作符   &&   ||   注意与 & |等按位操作符区分开


这里的a是0,为假,&&后面的也不用计算了

这里的a是1为真,||后面的不用计算了
(同理,如果第一句为假,第二句为真,第三句也就不用计算了)

精辟!

7.三目操作符

exp1 ? exp2 : exp3

1为真,则执行2,1为假则执行3

8.逗号操作符

exp1,exp2,exp3,exp4,exp5,.........expn;

从左到右,一个一个执行,但是整个表达式的结果是最后一个式子的结果

8.其他

下标:[]

arr[1]   和1[arr]一样的

[]是一个操作符,负责检测两个东西,意义是*(arr+1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值