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()

  • 相关阅读:
    模拟赛总结
    2018.04.06学习总结
    2018.04.06学习总结
    Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
  • 原文地址:https://www.cnblogs.com/Kissfly123/p/13959039.html
Copyright © 2011-2022 走看看