• 运算符与优先级


    优先级

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

  • 相关阅读:
    定时删除日志文件---linux定时清理日志
    Packagist 镜像使用方法--composer
    laravel 5.5 跨域问题解决方案
    linux服务器上面部署ShowDoc 安装Composer
    shell之批量新增用户脚本(http-basic-auth)
    js转义问题
    js之select三级联动
    《远见》之读书笔记
    Node.js之判断字符串中是否包含某个字符串
    微信小程序之页面传参
  • 原文地址:https://www.cnblogs.com/Kissfly123/p/13959039.html
Copyright © 2020-2023  润新知