zoukankan      html  css  js  c++  java
  • 运算符与优先级

    优先级

    1.括号优先级最高

    2.算术运算符优先级高于关系运算符

    3.逗号运算符优先最低
    !>算术运算符>关系运算符>&&>||>赋值运算符

    算数运算符——从左至右
    赋值运算符——从右至左

    优先级 操作符
    1 () [] -> .
    ::
    ! ~ ++ --
    2 - (负号) * (取内容)
    & (取首地址) sizeof
    3 ->* .*
    4 * (乘) / %
    5 + -
    6 << >>
    7 < <= > >=
    8 == !=
    9 & (按位与)
    10 ^
    11 |
    12 &&
    13 ||
    14 ? :
    15 = += -= etc.
    16 ,

    运算符

    一算术运算符

    加减乘除求余数+-*/%

    int n=7/2

    printf("%d",n)

    //输出为3,因为是整型,把小数舍弃掉了

    float n=7/2===>还是为3

    而float n=7/2.0===>结果为3.5

    二关系运算符

    大于 >

    小与 <

    等于 ==

    不等于 !=

    大于等于 >=

    小于等于 <=

    运算规则:从左到右依次比较,比较完一个运算符后,返回一个bool值,返回的bool值继续参与下一次比较
    不允许使用连续的判断

    三逻辑运算符

    与:&& 二者都为真才是真的

    或:|| 有一个真就为真

    非:! !表达式——改变真假

    注意

    int a = 1, b = 2, c = 3;
    bool is = (a > b) && (c = 6);

    前面为假,不在执行后面,所以c还是等于3

    ​ cout << "a=" << a<<endl
    ​ << "b=" << b<<endl
    ​ << "c=" << c << endl;

    输出的c=3

    ​ a = 1, b = 2, c = 3;
    ​ is = (a > b) || (c = 6);

    前面为假,可执行后面,所以c为6

    ​ cout << "a=" << a << endl
    ​ << "b=" << b << endl
    ​ << "c=" << c << endl;

    输出的c=6

    1.对于&&需要前后表达式都为真,整个逻辑表达式才为真,当前面的表达式为假,不在执行后半部分

    2.对于||需要前后表达式都为假,整个逻辑表达式才为假,当前半部分已经为真,不在执行后半部分

    四赋值运算符(双目运算符)

    int a;
    a = 10;
    bool b;
    b = a = 0;
    cout << "b=" << b << endl;

    从右到左赋值

    五自增自减运算符(单目运算符)

    前置后置的区别

    a++===》先操作,再执行a=a+1

    ++a===》先执行a=a+1,再操作

    a++不能做左值,a++是一个常量,++a是一个变量

    后置优先级比前置优先级高

    六条件运算符(三目运算符)

    写法:

    (表达式1)?(表达式2):(表达式3)

    规则:

    先执行表达式1,如果表达式1位真,就执行表达式2,为假就执行表达式3

    七逗号表达式

    写法:

    int n;

    n=((表达式1),(表达式2),......,(表达式n));

    最后n=表达式n的值

    运算规则:

    从左到右,依次计算,取最后一个表达式的值(表达式的个数不受限制)

    int a = 1, b = 2, c = 3;
    int n;
    n = ((++a), (a++), (a = 10), (c = a), (b = 80), a);
    cout << "a=" << a << endl ;  //a=10
    cout << "b=" << b << endl ;	//b=80
    cout << "c=" << c << endl ; //c=10
    cout << "n=" << n << endl ;	//n=10
    

    八括号运算符

    ()[]

    括号括起来的先算,有多个括号,从左到右算

    九位操作运算符

    按位与 &

    按位或 |

    按位非 ~

    按位异或 ^

    左移 <<

    右移 >>

    十其他运算符

    箭头 ->

    点 .

    负号 -

    取内容 *

    取首地址 &

    求字节数 sizeof()

  • 相关阅读:
    mysql MHA报错 Can't exec "mysqlbinlog": No such file or directory at /usr/local/share/perl5/MHA/BinlogManager.pm line 99.
    树莓派搭建私人服务器
    动手写简单的嵌入式操作系统一
    java 返回json数据
    C语言中内存分配
    IntelliJ IDEA14.0.3+Maven+SpringMVC+Spring+Hibernate光速构建Java权限管理系统(三)
    linux设备驱动归纳总结
    阿里云centos6.5下搭建javaWeb运行环境
    JAVAWEB项目如何实现验证码
    Linux驱动开发:USB驱动之usb_skel分析
  • 原文地址:https://www.cnblogs.com/Kissfly123/p/13959039.html
Copyright © 2011-2022 走看看