《c和指针》摘录3—操作符合表达式

操作符

1.1 算术操作符

加(+),减(-),乘(*),除(/),求模(%)

除了 % 操作符,其他的都是既适用于浮点类型又适用于整数类型。% 运算符要求左右两边操作数均是int类型,运算结果也是int类型 。

若除号 / 左右的操作数均是int类型结果也是int类型,值为商的整数部分。在其他情况下则是浮点数除法。

eg:

int a = 5, b = 3;

a / b 结果是1 。

1.2移位操作符

左移操作符 (<<),右移操作符(>>),两个操作数都是整型。

左移操作中,值最左边的几位被丢弃,右边多出来的几位则填0补齐。

右移操作中,分为2种情况:

1. 逻辑移位:右移后左边的位填0补齐。

2.算术移位:如果操作数为负数,则右移后填1补齐。正数填0补齐。

eg:

10010110 

逻辑移位:00100101

算术移位:11100101

一个程序如果使用了有符号数的右移操作,它就是不可移植。

1.3位操作符

按位与(&), 按位或(|), 异或(^)

位操作对它们的操作数的各个位执行 and,or和 xor(异或)等逻辑操作。

&:两个位都为1,结果才是1,否则都是0

|: 两个位都是0,结果才是0,否则都是1

^: 两个位不同为1,相同为0

它们要求操作数为整型。

1.4单目操作符

!, ~ ,++,--,+,-,&,* ,sizeof

这些单目操作符,只能接受一个操作数。

!对它的操作数进行取反操作。如果操作数为真,其结果为假。这个操作符产生的结果为整型,0或1。

~ 对它的操作数进行求补操作。操作数中所有原先是1的位变成0.

- 操作符产生操作数的负值。

& 操作符产生它的操作数的地址。

* 操作符是间接访问操作符,它与指针以前使用,用于访问指针所指向的值。

sizeof 操作符判断它的操作数的类型长度,以字节为单位表示。sizeof (int)  sizeof (x)。

b = ++a, b = a++。在操作数之前的 ++在变量使用前自增,在操作数后的++在变量使用后再自增。

1.5关系操作符

> , >=, <, <=, !=, ==

这些操作符的工作方式:表达式的结果如果是0,则是假,非0则为真。

if ( expression!=0) ....

if( expression) .....

测试不等于0,可以用关系操作符,又可以通过测试表示式的值来完成。

1.6逻辑操作符

&& , ||

作用:用于对表达式求值,测试它们的值得真假。

&& 和 || 操作符具有 短路求值,如果表达式的值根据左操作数就可决定,它就不再对右操作数进行求值。与之相反,& 和 | 操作符两边的操作数都需要进行求值。

逻辑操作符用于测试零值和非零值,位操作符用于比较它们的操作数中对应的位。

1.7条件操作符

条件操作符接受三个操作数,它也会控制子表达式的求值顺序。

expression1  ? expression2 :expression3;

1.8布尔值

c不具备显示的布尔值类型,所有使用整数来代替。其规则是:

零是假,任何非零值为真







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值