码迷,mamicode.com
首页 > 编程语言 > 详细

C++Primer快速浏览笔记

时间:2015-09-04 18:33:27      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

1.类型转换

  1. bool b = 42; // _b is true_
  2. int i = b; // _i has value 1_
  3. i = 3.14; // _i has value 3_
  4. double pi = i; // _pi has value 3.0_
  5. unsigned char c = -1; // _assuming 8-bit chars_, _c has value 255_
  6. signed char c2 = 256; // _assuming 8-bit chars_, _the value of c2 is__undefined_

类型所能表示的值的范围决定了转换的过程:

  • 当我们把一个非布尔类型的算术值赋给布尔类型时,初始值为0则结果为false,
    否则结果为true.
  • 当我们把一个布尔值赋给非布尔类型时,初始值为false则结果为O,初始值为
    true则结果为1.
  • 当我们把一个浮点数赋给整数类型时,进行了近似处理。结果值将仅保留浮点数中
    小数点之前的部分。
  • 当我们把一个整数值赋给浮点类型时,小数部分记为0。如果该整数所占的空间超
    过了浮点类型的容量,精度可能有损失。
  • 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表
    示数值总数取模后的余数。例如,8比特大小的unsigned char可以表示0至255区间内的值,如果我们赋了一个区间以外的值,则实际的结果是该值对256取模后所得的余数。因此,把-1赋给8比特大小的unsigned char所得的结果是255.
  • 当我们赋给带符号类型·个超出它表示范围的值时,结果是未定义的(undefined)。
    此时工程序可能继续二仁作、可能崩溃,也可能生成垃圾数据。




C++Primer快速浏览笔记

标签:

原文地址:http://www.cnblogs.com/star91/p/4782026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!