美文网首页
第4章 表达式

第4章 表达式

作者: 咸鱼翻身ing | 来源:发表于2018-04-24 20:41 被阅读0次

    4.1 基础

    4.1.1 基本概念

    1. 重载运算符:用户自定义的用于类类型的运算对象的运算符。这个自定义过程为已存在的运算符赋予了另一层的含义。
    2. 左值右值:当一个对象被用作左值时,用的是对象的值(内容);当对象被用作右值时,用的是对象的身份(在内存中的位置)。

    4.1.3 求值顺序

    1. 求值顺序:未指定执行顺序的表达式,如果指向并修改同一个对象,会引发错误产生未定义;只有4种运算符规定了从左到右的求值顺序(条件与&&、条件或||、条件运算符?:、逗号,)

    4.2 算数运算符

    运算符(左结合律) 功能
    +、- 一元正号、一元负号
    *、/、% 乘法、除法、求余
    +、- 加法、减法
    1. 整数相除:商向0取整;取余时m%(-n)=m%(n),-m%n=-(m%n)
    2. 整型提升:小整型(如short、char)总会自动提升为较大的整型,一般为int;较大的char(如w_char)提升为大整型中可容纳原值的最小一类,布尔类型提升成int型。

    4.8 位运算符

    移位运算符:右侧的移动位数必须非负且小于结果的位数;移出位被舍弃,符号位视机器而定
    位求反运算符:char类型提升成int型,原来的位保持不变,高位添0;

    4.9 sizeof运算符

    1. 引用类型:得到被引用对象所占空间的大小。
    2. 指针类型:得到指针本身所占空间的大小。
    3. 解引用:得到指针指向的对象所占空间的大小,指针不需有效。
    4. 数组类型:得到整个数组所占空间的大小。
    5. string或vector对象:返回该类型固定部分的大小。

    4.10 逗号运算符

    1. 逗号运算符:先对左侧表达式求值,然后丢弃求值结果,真正的结果是右侧表达式的值

    4.11 类型转换

    1. 数组指针转换:大多时候会自动隐式转换;当数组被当作decltype、&、sizeof、typeid的运算对象时,转换不发生。
    2. 指针的转换:0或nullptr可转换成任意指针类型,非底层const的指针可以转为void,底层const的指针可以转为const void
    3. 命名的强制类型转换:static_cast(无底层const)、dynamic_cast(运行时类型识别)、const_cast(有底层const)、reinterpret_cast(低层的重新解释)

    相关文章

      网友评论

          本文标题:第4章 表达式

          本文链接:https://www.haomeiwen.com/subject/ucrjgxtx.html