您的位置:首页 > 编程语言 > C语言/C++

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

2010-01-09 22:22 211 查看
必备技能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++会自动地对内置的类型进行相互转换,但其结果并不一定是我们想要的。所以在表达式中使用不同类型的数据的时候要特别注意。
表达式
运算符,变量,和实字都是表达式的组成部分。或许我们已经从其它语言的编程经验中或者是从代数中知道了表达式的基本形式。然而,我们在这里还是有必要讨论一下表达式的几个特性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: