• C++ 强制类型转换


    /*

    // assigning a short to a long

    C++丰富的类型允许根据需求选择不同的类型,这也使计算机的操作更复杂。例如,将两个short值相

    加涉及到的硬件编译指令可能会与将两个long值相加不同。由于有11种整型和3种浮点类型,因此计算

    机需要处理大量不同的情况,尤其是对不同的类型进行运算时。为处理这种潜在的混乱,C++自动执行很

    多类型转换:

    ●将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换。

    ●表达式中包含不同的类型时,C++将对值进行转换。

    ● 将参数传递给函数时,C++将对值进行转换。

    如果不知道进行这些自动转换时将发生的情况,将无法理解一些程序的结果,因此下面详细地介绍这

    些规则。

    1. 赋值时进行的转换

    C++允许将 一种类型的值赋给另一种类型的变量。这样做时,值将被转换为接收变量的类型。例如,

    假设 so_long的类型为long,thirty 的类型为short,而程序中包含这样的语句:

    so long = thirty;

    则进行赋值时,程序将thirty的值(通常是16位)扩展为一个long值(通常为32位)。扩展后将得到

    一个新的值,这个值被存储在so_long中,而thirty 的内容不变。

    将·个值赋给取值范围更大的类型通常不会导致什么问题。例如,将short值赋给long 变量并不会改

    变这个值,只是占用的字节更多而已。不过,将一个很大的long值(如2111222333)赋给float变量将降

    低精度。因为float只有6位有效数字,因此这个值将被四舍五入为2.11122E9。因此,有些转换是安全的,

    有些则会带来麻烦。表3.3列出了 …- 些可能出现的转换问题。

    */

    1. #include
    2. int main()
    3. {
    4. using namespace std;
    5. cout.setf(ios_base::fixed,ios_base::floatfield);
    6. float tree=3;
    7. int guess=3.9832;
    8. int debt=7.2E12;
    9. cout<<"tree="<
    10. cout<<"guess="<
    11. cout<<"debt="<
    12. return 0;
    13. }

  • 相关阅读:
    从零开始配置vim(29)——DAP 配置
    MySQL数据类型:字符串类型详解
    Leetcode.740 删除并获得点数
    高视医疗在港交所招股:IPO募资要用于贷款,高铁塔为控股股东
    基于流的(Flow-based)生成模型简介
    Ubuntu安装Python环境(使用VSCode)
    本地开发环境大小写不敏感引发的问题
    el-table相同的值合并单元格+多级表头
    JavaEE初阶:文件操作 和 IO
    我的Primavera Unifier学习环境介绍(软件+硬件)
  • 原文地址:https://blog.csdn.net/Popcorn_zyh/article/details/133961410