运算符--c语言个人笔记【三】

c语言个人笔记

E.menos

代码规范性!!!

  • 如何看懂一个程序?
    1. 流程
    2. 每个语句的功能
    3. 试数

三. 运算符

3.1 分类

算数运算符
+ - * /(除) %(取余)

关系运算符
> >= < <= !=(不等于) ==(等于)

  • 逻辑运算符
    !(非) &&(并且) ||(或)

  • 赋值运算符
    = += *= /= -=
    a += 3 ;a = a + 3;

优先级别:算数>关系>逻辑>赋值

3.2 除法与取模运算符


1.除法 / 的运算结果和运算对象的数据类型有关,两个数都是int则商就是int,若商有小数,则截取小数部分; 被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分。
    如: 16/5==3   16/5.0==3.20000   -13/4==-3   -13/-3==4    3/5==0   5/3==1
        
        最典型的例题就是求s=1+1/2+1/3+1/4+1/5···+1/100的值。


2.取余 % 的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相同。
        如: 13%3==1  13%-3==1   -13%3==-1   -13%23 ==-13   3%5==3

3.3 逻辑运算符

!(非) &&(并且) ||(或)

!真 假
!假 真

真&&真 真
真&&假 假
假&&真 假
假&&假 假

真||真 真
真||假 真
假||真 真
假||假 假

C语言对真假的处理:
非零是真(1)
零是假(0)
&&左边的表达式为假,右边的表达式肯定不会执行
||左边的表达式为真,右边的表达式肯定不会执行

    #include <stdio.h>

    int main(void)
    {
        int i = 10;
        int k = 20;
        int m;

        m = (1>2) || (k=5);     //不含有分号的是表达式,含有分号的是语句
        printf ("m = %d, k = %d\n",m,k);

        return 0;
    }

3.4 其他小知识

  1. 自增

    • 分类:

      • 前自增 – ++i
      • 后自增 – i++
    • 异同:

      • 相同: 最终都使i的值加一
      • 不同: 前自增整体表达式的值是i加1后的值
        后自增整体表达式的值是i加1前的值
          #include <stdio.h>
      
          int main(void)
          {
              int i;
              int j;
              int k;
              int m;
      
              i = j = 3;
              k = i++;
              m = ++j;
      
              printf("i=%d,j=%d,k=%d,m=%d\n",i,j,k,m);
      
              return 0;
              //输出结果 i = 4, j = 4, k = 3, m = 4
          }
      
    • 为什么会出现自增?
      代码更精炼;自增效果更快

    • 自增几个问题:

      1. 编程时尽量屏蔽前自增与后自增的差别
      2. 自增表达式最好不要作为一个更大的表达式的一部分来使用
        (最好单独成一个语句,不要作为完整复合语句的一部分来使用)
        如:int m = i++ + ++i + i + i++;这样写不但是不规范的代码,而且是不可移植的代码(在不同设备上执行结果不同【顺序点的问题】)
        顺序点:三个“,”“;”“()”
  2. 自减
    (同自增)略

  3. 三目运算符
    格式:
    A ? B ; C
    等价于

        if(A)
            B;
        else
            C;
    
  4. 逗号表达式
    格式:
    (A, B, C, D)
    功能:
    从左到右执行;
    最终表达式的值是最后一项的值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值