(1)先看下下面的代码,char another{512};将会报错,因为512超出了char表示的范围
(2)float littleNumber{bigNumber};警告,因为发生了类型转换,高精度double转为低精度float
int main() {
int number{0};
char another{512};
double bigNumber{1.0};
float littleNumber{bigNumber};
return 0;
}
(3)这时候,就要使用static_cast通知编译器缩小范围转换是有意的,并且要编译代码,如下
int main() {
int number{0};
char another{static_cast<char>(512)};
double bigNumber{1.0};
float littleNumber{static_cast<float>(bigNumber)};
cout<<number;
return 0;
}