c++primer第二遍阅读感悟(chap4)

时间:2022-08-16 16:44:31

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