左值和右值
自增自减运算符作用于左值对象,解引用和下标运算符得到左值;decltype作用于左值得到引用类型,右值得到普通类型;求值顺序
优先级一般只规定了组合方式,并未规定求值顺序以及函数的调用顺序;只有 && || ?: 和, 规定了求值顺序。如果想右结合连续赋值,就必须满足变量类型相同或可相互转化;
隐式转换的整型提升
一般都是向更宽更大的方向变化;较大的char被转换成可容纳的int,unsigned int等中最小的一类;unsigned short与int按照具体所占空间决定;显示转换
static_cast 静态转换
当需要忽略精度时,使用显示静态转换,可以消除警告(相当于声明了就是要忽略精度);不可以对底层const转换;不可以实现非void类型指针之间的转换;const_cast 常量转换 只能改变底层const属性;
dynamic_cast 动态转换
具有运行时类型检查的特性,只能被使用在将变量转化为类的指针/类的引用/void*时;进行父类子类之间的显示转换时更加安全;reinterpret_cast 重解释转换
可以实现指针的非void类型之间的转换;是一个非常危险的行为;