C++ 初学者指南 第二篇(10)

必备技能2.8:赋值时的类型转换
    当一种类型的变量和另外一种类型的变量混合使用的时候,就会发生类型的转换。在一个赋值语句中,类型转换的规则很简单:赋值语句右边的值被转换成左边的值。正如下面的代码展示的那样:
int x;
char ch;
float f;

ch = x;  /* line 1 */
x = f     /* line 2 */
f = ch;  /* line 3 */
f = x;   /* line 4 */
在line 1中,整形变量x的高位被截断,剩下的低8位赋值给ch。如果x的值在-128到 127之间,ch和x将有着相同的取值。否则,ch的值只能体现x的低8位的值。在line 2中,x将被赋值为f的整数部分。在line 3中,f将把ch中存储的8比特整形数转换成相等的浮点数形式。line 4中的情况也是如此,除了是把一个整形数转换为一个浮点数。
    当转换时从整形数到字符类型或者是从长整形到整形的时候,对应数字的高位将被移除。在很多的32位环境中,这意味着如果是从整形数到字符的转换,将要丢失24个比特;如果是从整形数到短整形数的转换,将丢失16比特。当由浮点数转换为整形数的时候,小数部分将会被丢弃。如果目标类型不足够大来保存结果,其结果将会和原来的值相差甚远。
    值得注意的地方:C++会自动地对内置的类型进行相互转换,但其结果并不一定是我们想要的。所以在表达式中使用不同类型的数据的时候要特别注意。
表达式
    运算符,变量,和实字都是表达式的组成部分。或许我们已经从其它语言的编程经验中或者是从代数中知道了表达式的基本形式。然而,我们在这里还是有必要讨论一下表达式的几个特性。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值