混合表达式与类型转换

2.11 混合表达式与类型转换表达式可以包含不同类型的操作数。例如,可以定义一个变量来存储鱼的数量,如下:

unsigned int fish_count {}; // Number of fish

鱼的数量是整数,因此这是有效的。同样,一英尺的英寸数也是整数,可以定义如下变量:

const unsigned int inches_per_foot {12};

尽管变量类型不同,计算依然可以进行,例如:

fish_length /= inches_per_foot; // Convert to feet
double pond_area {fish_count * fish_length * fish_factor};

二元算术运算要求两个操作数的类型相同。如果类型不同,编译器必须将其中一个操作数转换为另一个操作数的类型,这称为隐式转换。具体来说,编译器会将值域较小的变量类型转换为另一个变量的类型。在第一条语句中,fish_lengthdouble 类型。double 类型的值域比 unsigned int 类型大,因此编译器将 inches_per_foot 的值转换为 double 类型以完成除法操作。在第二条语句中,fish_count

pdf 文件大小:5.22MB