• C++基础知识(三)--数据类型转换--混合运算类型转换--赋值类型转换--强制类型转换


    系统自动类型转换:混合运算的类型转换,赋值类型转换,强制类型转换

    一、混合运算的类型转换规则

      1.运算过程中,当某个二元运算符两边的操作数类型不同但属于类型相容时,系统先将精度低的操作数变换到与另一个操作数精度相同,然后再进行运算。

        混合运算类型转换规则:

    • 字符可以作为整数参与数值运算,整数值为其ASCII码
    • 操作数为字符或短整形时,系统自动转换成整形。
    • 操作数为实型时,系统自动转换成双精度型。
    • 其余情况,当两数操作数类型不同时,将精度低(或表示范围小的)的操作数的数据类型变换到与另一操作数类型相同再进行运算

      2.example

     1 char c1,c2;
     2 int i1,i2;
     3 float x1,x2;
     4 x2=c1*i1+c1*x1+c1*c2;
     5 
     6 转换过程:     c1转换成整型,完成c1*i1,结果表示为t1;
     7              c1与x1均转换成双精度型,完成c1*x1,结果表示为t2;
     8              c1与c2均转换成整型,完成c1*c2,结果表示为t3;
     9         然后:将t1转换成双精度型,完成t1+t2,结果表示为t4;
    10                  再将t3转换成双精度型,完成t3+t4,
    11         最后:结果转换成单精度型赋值给x2



    二、赋值类型转换

       1.系统自动进行类型转换规则:

    • 实型数赋值给整型变量:取整,注意溢出
    • 整型数赋值给实型变量:先转换为实型数
    • 字符型数赋值给整型变量:ASCII码为依据,分为两种情况,符号位是0/1时不同。
    • 绝对值较大的数赋值给表达范围较小的数据类型时,注意溢出

          在赋值运算中,当左值与右值类型不一致时,系统将按照左值的类型,自动进行强制转换。




    三、强制类型转换

      1.强制类型转换运算符格式

          (type)表达式

      2.作用:将表达式强制转换成type类型,但表达式的值及其类型不变

      3.注意:::强制类型转换不改变表达式本身的值类型,而是产生一个临时变量,用来暂存转换后的值,该临时变量被引用后即自动释放。

    1 int a=6,b=7;
    2 float x;
    3 x=(float)a/(float)b;
    4 执行强制类型转换后,a,b的值及类型都未改变。而是各自产生一个临时变量,用这两个临时变量的值进行运算

         

  • 相关阅读:
    类的自动载入
    设计模式的概述
    laravel开发微信公众号1 之基本配置
    laravel 中 与前端的一些事5 之解决缓存问题:version
    laravel 中 与前端的一些事4 之合并压缩静态文件
    H3C AR28-31路由器组网实验
    二分查找找一个数所在的范围
    从Code::Blocks到Dev–C++,Dev-C++安装调试一条龙
    Code::Blocks使用与调试一条龙
    JSP相对路径与绝对路径探秘
  • 原文地址:https://www.cnblogs.com/southcyy/p/10249117.html
Copyright © 2020-2023  润新知