首先,将19.99和11.99相加,结果为31.98。将这个值赋给int变量auks时,它被截短为31。但在进
行加法运算之前使用强制类型转换时,这两个值将被截短为19和11,因此bats和coots的值都为30。最
后的cout语句使用强制类型转换将·个char类型的值转换为int,然后显示它。这样,cout将把值打印为
整数,而不是字符。
该程序指出了使用强制类型转换的两个原因。首先,可能有一些值被存储为double类型,但要使用它
们来计算得到 ·个int类型的值。例如,可能要用浮点数来对齐网格或者模拟整数值(如人口)。程序员可
能希望在计算时将值视为int,强制类型转换允许直接这样做。注意,将值转换为int,然后相加得到的结
果,与先将值相加,然后转换为int是不同的,至少对于这些值来说是不同的。
程序的第部分指出了最常见的使用强制类型转换的原因 -- 使一种格式的数据能够满足不同的期望。
例如,在程序清单3.14中,char变量ch存储的是字母Z的编码。将cout用于ch将显示字符Z,因为ch的
类型为char。但通过将ch强制转换为int类型,cout将采用int模式,从而打印存储在ch中的ASCII码。
- #include
- int main()
- {
- using namespace std;
- int auks,bats,coots;
- //the following statement adds the values as double,
- //then converts the result to int
- auks=19.99+11.99;
- //these statements add values as int
- bats=(int)19.99+(int)11.99; //old C syntax
- coots=(int)19.99+int(11.99);//new C++ yntax
- cout<<"auks="<
",bats="< - cout<<",coots="<
- char ch='Z';
- cout<<"The code for"<
"is"; //print as char - cout<<int(ch)<
- return 0;
- }
-
相关阅读:
策略验证_买入口诀_三杆通底反弹在即
制造业销售数据分析
Quartz的分布式功能化设计
Txt病毒
Kotlin 中的数据类型有隐式转换吗?
机器学习系统在生产中的挑战
系统报错“由于找不到vcomp140.dll无法继续执行代码”的解决方案
效率工具之Arthas
安装RabbitMQ的各种问题(包括已注册成windows服务后,再次重新安装,删除服务重新注册遇到的问题)
[LeetCode]剑指 Offer 40. 最小的k个数
-
原文地址:https://blog.csdn.net/Popcorn_zyh/article/details/133965210