C++语言程序设计

| 例3-3
| (int) 3.14 // 3.14 转换成整型数3 (long) 3.14 // 3.14转换成长整型数3L (double) 2 // 2转换成双精度数2.0 (char) 122 // 122转换成Unicode码为122的字符 (unsigned short) 3.14 // 3.14转换成无符号整型数3

如果类型标识符仅为一个单词，显式类型转换的形式也可以写成：类型表示符（表达式）。例如：
int(3.14) // 等价于(int) 3.14
在一般情况下，各种数据都按默认类型参与运算， 当两个不同的数据类型（整型、字符型、实型）进行运算时，数据将进行自动类型转换，转换后再参与运算。
例：指出下面每个语句的执行结果。

| 例3-4

char ch='c'；
int a，b=13；
float x=2.0；
double y；
a=ch+5； //a=104，a先转化为int型，再参与运算。
x=b/2/x； //x=3.0，先作整除运算，然后再转换成double与x运算。
x=b/x/2; //x=3.25，b先转换成float型与x做除法，同时2也转化成float型，然后做除法运算。
y=x/b； //x=0.153846153846154，x和b分别转化成double然后做除法运算。

又例如：

| 例3-5
| double d = 1; // d 的值1.0 int i = 10.5; // i的值10 i = i + d; // 等价于: i = int(double(i) + d)

上例中，表达式i = i + d的变量i与d的类型不同，使得i首先被转换为double型（提升），再与d相加，其结果为一double型数。由于该double型数与赋值语句左边i的类型不匹配，所以在它被赋给i之前，再被转换为int型（下降）。
上面的自动类型转换也称为隐式转换。