指针不能转换成浮点数
重载运算符时,不能改变运算对象的个数、运算符的优先级和结合律
对变量进行取地址得到的是一个右值
优先级并没有说明运算对象的求值顺序
运算对象修改了同一对象,会引发错误并产生未定义的行为
取余的运算对象必须是整型
除法运算中规定商一律向0取整
如果m%n结果不为0,则结果的符号与m相同
逻辑运算符和关系运算符的结果都是右值
初始值列表可以为空,此时编译器会创建一个初始化的临时量然后赋给左侧运算对象
不能把指针的值赋给int,就算指针的值是0也不行,因为指针类型无法转换为int
复合运算符只求值一次,普通运算符求值两次
后置版本返回右值
解引用的优先级低于点运算符
箭头运算符结果是左值,点运算符的结果类型取决于作用的对象
条件运算符的优先级很低,一般要加括号
位运算符首先将小整型进行提升为int
位运算符作用于有符号数时,结果取决于机器,若对负数左移是未定义的行为
位运算符的右侧运算对象不能是负的,而且要小于结果的位数,不然就未定义
sizeof并不实际计算值,返回类型的大小
sizeof的运算对象可以解引用一个无效指针
对引用进行sizeof得到的是被引用对象的空间大小
对指针进行sizeof得到的是指针本身的大小
对数组进行sizeof得到整个数组的大小,不会把数组转换为指针
整型和浮点型进行运算,整型会转换为浮点型
任何与long double进行运算的都会转换为long double
整型提升:只要所有值都能存在int中的,就提升为int类型,否则提升为unsigned int
扩展的char类型提升为int~unsigned long long 中的最小符合类型
带符号和无符号运算,若无符号>=带符号,带符号–>无符号。
若不然,则判断无符号能存放于带符号中,能则把它转为带符号,不能则把带符号转为它
static_cast不能用于底层const
const_cast只能用于改变底层const,如果去掉const之后就写的话会是未定义的行为
reinterpret_cast:对运算对象的位进行重新解释