1. C++ 数学运算符
1.1. 5种基本的C++运算符
- 加法运算
- 减法运算
- 乘法运算
- / 除法运算(如果两个操作数都是整数,则执行整数除法,小数部分将被丢弃,结果为整数;如果有1个(或2个)操作数是浮点数,则小数部分将被保留,结果为浮点数)
- % 求模。两个操作数必须都为整数
1.2. 类型转换
1.2.1. 初始化和赋值进行的转换
C++允许将一种类型的值赋给另一种类型的变量,这样做时,值将被转换为接受变量的类型。
🍑 例子:
假设so_long的类型为long,thirty的类型为short,而程序为:1
so_long = thirty;
程序将thirty的值(short)扩展为long值,so_long将储存这个值,而thirty不变。
将一个值赋给取值范围更大的类型通常不会产生问题,反之,则会降低精度;
下面列出了潜在的问题:
转换 | 潜在的问题 |
---|---|
将较大浮点类型转换为较小的浮点类型,如将double转换为float | 精度有效数位丢失 |
将浮点转整数 | 小数部分丢失 |
- 将0赋给bool变量时,将被转换为false;而非零值将被转换为true;
1.2.2. 以{}方式初始化时进行的转换
1.2.3. 表达式中的转换
1.2.4. 传递参数时的转换
1.2.5. 强制类型转换
1.2.6. C++ 11 中的auto声明
auto声明让编译器能够根据初始值的类型推断变量的类型。如果使用了关键字auto,而不指定变量的类型,编译器将把变量的类型设置与初始值相同。
1 | auto n = 100; // n is int |