2.c语言运算符与表达式

1.表达式(建议电脑观看)

    (1)是运算符链接的操作的式子

    (2)带分号;的是语句不带分号;的是表达式

2.运算符

        2.1 算术运算符双目运算符)需要两个操作数-------》1+1     2*2    4/5

         (加) +              (减) -          (乘) *         (除) /            (取余) %

        取余运算符,两个操作数必须为整数,且不能对0取余

        注意:整数 / 整数  得到的还是一个整数。想要小数,在表达式前面乘1.0即可

                  (1.0)* (8/4)---》得到2.0

        这里需注意有隐式类型转换:高精度与低精度进行运算时,结果会向高精度转换(如上)

        2.2 关系运算符双目运算符

        >     <     >=    <=    ==    !=

        由关系运算符连接操作数的式子叫关系表达式(注意说法:表达式的值)

        常见错误:

        (1)5>4>3 --->关系不成立,5>4表达式值为1,然后5>4这个表达式替换成1,即1>3,关系不成立

        (2)5>4   ----->关系成立,表达式值为1

        (3)5<4  ------>关系不成立,表示式值为0

        2.3 逻辑运算符(与或非)

        在c中,所有非0的数值都表示真,运算结果为真,其表达式的值一定为1

      &&(逻辑与)   ----优先级大于逻辑与

       ||  (逻辑或)

       !(逻辑非)

        注意:逻辑运算中存在惰性运算

        eg:a && b && c(只有a为真时,才会去计算b,a为假,该表达式为假,后面的不用再进行运算

        

    int a=0;

    int b=1;

    int c=1;

    int d=a&&(b=b-1)||(c=c-1);

    printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

      问:a,b,c,d的值分别多少?

        

        结果:0 1 0 0

        解析:

        考虑优先级,可以表示成  [a && (b=b-1)]    ||(c=c-1)

        先运算前面的 [a && (b=b-1)] ,因为a=0,为假,这个表达式为0,且因为惰性运算,b=b-1不会运算   --->可以看成   0 | |(c=c-1)

        前面是0,所以后面c=c-1会进行运算 ,即c=0

        对于d而言 相当于 0 || 0 所以d=0

        综上a=0 ,b不变 b=1 ,c=0,d=0;

        2.4 位运算符(二进制运算下)

        ~ 按位取反(单目运算符)(下面都是双目运算符)

        & 按位与   --与0按位与 可以将某一位  置0

        | 按位或    --与1按位或  可以将某一位  置1

        ^ 按位异或        ---》可以将某一位 置反

        << 左移       -->整体往左移,后面补零

        >> 右移        -->算数右移(低位丢失,高位补符号位)

                            --》逻辑右移(低位丢失,高位补0)

        2.5 赋值运算符   =  (赋值运算符左边必须是一个可写地址)

        int a;

        a=6+7;  //左边的a表示地址

        2.6 条件运算符(存在惰性运算)

        格式:表达式1    表达式2表达式3

        表达式1为真,整个条件表达式的为 表达式2

        表达式1为假,整个条件表达式的为 表达式3

        2.7 自增 自减运算符 ++ --

                               表达式的值                 执行完后的值

         i++ (先用再加)       i                                     i++

        ++i  (先加再用)     ++i                                  i++

        自减也是如上

        2.8 指针运算符(*)

      以上列举常见,常用的运算符

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值