《C和指针》第五章 操作符和表达式

1.算术操作符:+   -     *      /       %其中%只接受两个整型数,其他的可以是整型或者浮点型

2.移位操作符:<<    >>,分为逻辑移位和算术移位,操作符两个操作数必须是整型

逻辑移位:左移时,值最左边移出的就丢弃,右侧空出来的就补0;右移时,移出去的抛弃,左边的空出来的补0;

算术移位:左移时和逻辑左移一样,右移时,左边空出来的由符号位决定,符号位为1,则移入的位均为1,符号位为0,则移入的位均为0;

无符号值执行的所有移位都是逻辑移位;有符号值则不确定

3.程序5.1计数一个值中值为一的位的个数(思路:移位,%2或者右移,&1)

4..位操作符:AND(&)    OR(|)    XOR(^)异或是相同为0不同为1

5.赋值:=

  复合赋值符:+=       -=      * =       /=       %=      <<=   >>=      &=   |=       ^=       

6.单目操作符:!(逻辑取反,操作数为真,则结果为假)

    ~(对整型类型的操作数求补)

    -(取负值)

    &(取地址操作符)

    *(间接访问操作符)

    sizeof(判断操作数的类型长度,以字节为单位)

    ++和--(++如果被用在操作数前面,操作数的值被增加,表达式的值就是操作数增加后的值;++如果被用在操作数之后,操作数的值仍被增加,但表达式的值是 操作数增加之前的值。--也是同理)

7.关系操作符: >    >=    <   <=    !=  ==  这些操作符产生的是一个整形值,而不是布尔值

8.逻辑操作符: &&     ||

9.条件操作符:  expression?expression2:expression3

10.逗号操作符:while(a=getvalue(),countvalue(a),a>0){}就等同于a=getvalue();countvalue(a);while(a>0){a=getvalue();countvalue(a);。。}

11.除了优先级外,下标引用和间接访问操作符是等价的,array[下标]     *(array+(下标))

12.左值和右值:左值就是那些能出现在赋值符号左边的东西,右值就是能够出现在赋值符号右边的东西

13.操作符的优先级:

()

[]

.

->

++(后缀)

--(后缀)

~

-

++(前缀)

--(前缀)

*

&

sizeof

*

/

%

+

-

<<

>>

>

>=

<

<=

&

|

^

&&

||

?:

=

+=

-=

*=

/=

%=

<<=

>>=

&=

|=

^=

,





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值