zoukankan      html  css  js  c++  java
  • C++语言基础--02_运算符

    运算符

    一 算术运算符

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

        int a = 2, b = 4;

    int c = a + b;
    cout << "c = " << c << endl; // 6

    int d = a - b;
    cout << "d = " << d << endl; // -2

    int e = a * b;
    cout << "e = " << e << endl; // 8

    int f = 5 / 2;
    cout << "f = " << f << endl; // 0
    // 0:int是整型 整数运算 结果还是整数,小数部分直接忽略

    int g = b / a;
    cout << "g = " << g << endl; // 2

    float f0 = 2, f1 = 4;
    float ff = f0 / f1;
    cout << "ff = " << ff << endl; // 0.5

    int num = 5 % 2; // 求5除以2的余数 %:求余 取模
    cout << "num = " << num << endl;

    int n = 5;
    float m = 2.0;
    float number = n / m;
    cout << "number = " << number << endl; // 2.5
    // 当参与运算的数据存在小数时,结果是小数

    // % 两边都必须是整数

    // 总结:运算结果以参与运算的数据中精度高的为准

    二 关系运算符

    大于 >

    小于 <

    等于等于 ==

    大于等于 >=

    小于等于 <=

    不等于 !=

        bool b = 3 > 7;
    cout << "b = " << b << endl;

    bool b = 3 != 3;
    cout << "b = " << b << endl;
    运算规则:先比较 然后 成立为真 不成立为假
    注意:运算顺序为从左至右

    三 逻辑运算符

    运算完成之后会给出一个bool值

    && 前后两者都为真,表达式为真 否则为假

        bool b = (2 > 3) && (3 < 4);
    cout << "b = " << b << endl; // 0

    bool b = (2 < 3) && (3 < 4);
    cout << "b = " << b << endl; // 1

    || 前者或后者为真,表达式为真 否则为假

        bool b = (2 > 3) || (3 < 4);
    cout << "b = " << b << endl; // 1

    bool b = (2 < 3) || (3 < 4);
    cout << "b = " << b << endl; // 1

    bool b = (2 > 3) || (3 > 4);
    cout << "b = " << b << endl; // 0

    反转真假

        bool b = !(2 > 3);
    cout << "b = " << b << endl; // 1
    注意:运算顺序为从左至右
    1 对于&&运算符,由于需要前后都为真整个表达式才为真,所以,当前面为假时,确定整个表达式为假,所以不会继续运算后面的表达式。
    2 对于||运算符,由于只要前后有一个为真整个表达式就为真,所以,当前面为真时,确定整个表达式为真,所以不会继续运算后面的表达式。
    eg1:
    int a = 1, b = 2;
    bool bo = (a = a + b) && (b = a + b);
    cout << "a = " << a << endl; // 3
    cout << "b = " << b << endl; // 5
    cout << "bo = " << bo << endl; // 1

    eg2:
    int a = 1, b = 2;
    bool bo = (a = a + b) || (b = a + b);
    cout << "a = " << a << endl; // 3
    cout << "b = " << b << endl; // 2
    cout << "bo = " << bo << endl; // 1

    // 需要特别注意是否会继续向后运算

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

    赋值 =

    可以和算术运算符组合使用(复合赋值运算符)

    += -= *= /= %=

        int a = 1, b = 2;
    a -= 1; // 等价于 a = a - 1;
    cout << "a = " << a << endl; // 0
    a += 2; // 等价于 a = a + 2;
    cout << "a = " << a << endl; // 2
    a *= b; // 等价于 a = a * b;
    cout << "a = " << a << endl; // 4
    a /= b; // 等价于 a = a / b;
    cout << "a = " << a << endl; // 2
    a += 1; // 等价于 a = a + 1; 3
    a %= 2; // 等价于 a = a % 2;
    cout << "a = " << a << endl; // 1

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

    由于自身参与运算并且最后会改变自身的值,所以必须是变量。

    ++:自身加一 --:自身减一

    1 自增 ++

        int a = 1;
    a++; // 等价于 a = a + 1;
    cout << "a = " << a << endl; // 2
    ++a; // 等价于 a = a + 1;
    cout << "a = " << a << endl; // 3


    int c0 = 0;
    bool b0 = c0++; // 后置 先用c0给b0赋值 再c0++
    cout << "c0 = " << c0 << endl; // 1
    cout << "b0 = " << b0 << endl; // 0

    int c1 = 0;
    bool b1 = ++c1; // 前置 先c1++ 再用c0给b0赋值
    cout << "c1 = " << c1 << endl; // 1
    cout << "b1 = " << b1 << endl; // 1

    // 后置:先用再加 前置:先加再用

    2 自减 --

    同上

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

    	//(表达式1) ? (表达式2) : (表达式3);
    	//规则:先执行表达式1 为真执行表达式2 为假执行表达式3
    
    	int a = 1, b = 2, c = 3;
    	(a > 0) ? (b++) : (c++);
    	cout << "a = " << a << endl;	// 1
    	cout << "b = " << b << endl;	// 3
    	cout << "c = " << c << endl;	// 3
    

    七 逗号运算符

    逗号 ,

    // 逗号运算符 ,
    // 运算规则:从左至右依次运算 取最后一个表达式的值(表达式个数不受限制)
    
    int a = 1, b = 2, c = 3;
    int num = ((a++), (a = b + 1), c, (a + b + c));
    cout << "a = " << a << endl;		// 3
    cout << "b = " << b << endl;		// 2
    cout << "c = " << c << endl;		// 3
    cout << "num = " << num << endl;	// 8
    

    八 括号

    () []

    ()括号括起来的先算

    九 其他运算符

    箭头 ->

    .

    负号 -

    取内容 *

    取地址 &

    求字节数 sizeof

     

    十 位操作运算符

    按位非 ~

    左移 <<

    右移 >>

    按位与 &

    按位异或 ^

    按位或 |

    优先级

    括号优先级最高 ()

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

    赋值在逗号前面 = += -= ……

    逗号优先级最低 ,

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

     

     

     

  • 相关阅读:
    ubuntu 14.04下使用fcitx时将caps lock映射为ctrl
    php多进程、IPC和事件驱动
    [轉載]【京都动画统治世界】短篇科幻小说《2134动漫奇缘》
    [日语]每日笔记
    [转载]C++的顺序点(sequence point)和副作用(side effect)
    [转载]Best Practices for Speeding Up Your Web Site
    [系统]安装fedora 19
    阿里云服务上面部署redis + 本地Redis客户端连接方法 + 配置redis服务
    linux [Centos7]搭建PHP的RabbitMQ环境
    linux vim常用操作
  • 原文地址:https://www.cnblogs.com/ZhenXin0101/p/13191316.html
Copyright © 2011-2022 走看看