4.1 | 左值和右值:当一个对象被用作右值的时候,用的是对象的值(内容);当被用作左值的时候,用的是对象的身份(在内存中的位置)。
4.3 | 用范围for循环遍历string对象时,for (const auto &s : text) 将s声明为对常量的引用。因为text的元素是string对象,可能非常大,所以将s声明成引用类型可以避免对元素的拷贝;又因为不需要对string对象做写操作,所以s被声明成对常量的引用。
赋值运算符 的优先级低于 关系运算符
解引用运算符 的优先级低于 点运算符
条件运算符的优先级非常低?: 所以要在它两端加()
4.9 | sizeof运算符的结果:
- 对char或者类型为char的表达式执行sizeof运算,结果等于1.
- 对引用类型执行sizeof运算,结果等于被引用对象所占空间的大小。
- 对指针执行sizeof运算得到指针本身所占空间。
- 对解引用指针执行sizeof运算得到指针所以的对象所占空间的大小,指针不需要有效。
- 对数组执行sizeof运算得到整个数组所占空间的大小,等价于对数组中所有的元素各执行一次sizeof运算并将所得结果求和。注意:sizeof不会把数组转换成指针来处理。
- 对string对象或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占了多少空间。
4.11.3 |显示转换:
static_cast const_cast reinterpret_cast dynamic_cast