一元运算符:就像取地址符&或者解引用符*这样的
二元运算符:相等6运算符== 或者乘法运算符*这样的
左值:可以取地址,有名字的 ,对象用作左值时候,用的是对象在内存中的位置
右值:临时的变量,用的是对象的值。 有时候可以用左值代替
优先级:一个对象的函数 > 一元运算符(*)
4.12 优先级与结合律函数的优先级高于解引用
4.2 算术运算符两个数取余数,a%b,结果的符号将和a一样
4.4 赋值运算符赋值运算满足右结合律:
int i, j; i = j = 0;
赋值运算符的优先级低于关系运算符的优先级
4.5递增和递减运算符后置递增运算符的优先级高于解引用运算符。
4.7条件运算符条件运算符的优先级仅仅大于赋值和逗号
4.9 sizeof运算符对string或者vector执行sizeof运算得到的是一个固定的值。
指针占8个字节(64位操作系统下)
4.11 类型转换表达式中,比int小的整型值会提升为int型
两个不同类型计算时候,小的类型将转换成大的类型
无符号和有符号型进行运算时,且无符号型大于等于有符号型,有符号型将自动转换成无符号型,但是当有符号型这时候是负数时,该数将变成这个数值对数值范围取余后的余数。就像这个例子一样: unsigned int的范围是0~2^32-1,如果这个有符号型是-2,那么它转换成无符号型的时候,就会变成2^32 - 2的值.
4.11.2 其他隐式类型任意非常量的指针都能转换成viod*,
非常量可以转换成常量,但是常量不能转换成非常量。
4.1.3 显示转换static_cast函数:只要不涉及底层const,都可以用这个函数转换,例如:
int i, j; double ans = static_cast(j) / i;
cosnt_cast,用来改变底层const属性,从而去掉常量的特性,从常量变成了非常量。
const char* pc; char *p = const_cast(pc);



