3.4.1 5大算数运算符(优先级:自左向右)
- +
- -
- *
- /——(商与被除数数据类型相同)
- %——(两个操作数必须是整型)
3.4.2类型转换
- 初始化和赋值之间的转化
eg:so_long=so_short; 赋值时,程序将short扩展为long值,存在so_long中;
大转小可能会造成数据丢失,如float转化为int,丢失小数;long转化为short,超出取值范围等等;
将0赋给bool类型时,为false;非零值为true;
2.以{}方式初始化时进行的转换
C++11将使用大括号的初始化方式成为列表初始化(list-initialization),常用于给复杂的数据类型提供值列表;列表初始化不允许缩窄;
3.表达式中的转换
自动转换:C++在计算表达式时,将bool,char,unsigned char,char ,short值转化为int,计算完成后再转化为相应的数据类型;
int通常是计算机最自然的类型,意味着int在计算机中运行速度可能最快;
4.强制类型转换
强制类型转换有两种表达式格式:(将thorn的int值改为long)
(long)thorn;--> (typename) value;
long (thorn);--> typename (value);
不会修改thorn本身的值!!!
以及新的强制转换运算符:
如static_cast<typename>(value)
3.4.3 C++11中的auto声明
auto能让编译器能够根据初始值的类型推断变量的类型。