zoukankan      html  css  js  c++  java
  • C++强制类型转换

    在表达式中不同类型的数据会自动地转换类型,以进行运算。有时程序编制者还可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:
        (double)a  (将a转换成double类型)
        (int)(x+y)   (将x+y的值转换成整型)
        (float)(5%3)  (将5%3的值转换成float型)

    强制类型转换的一般形式为:
        (类型名)(表达式)

    注意:如果要进行强制类型转换的对象是一个变量,该变量可以不用括号括起来。如果要进行强制类型转换的对象是一个包含多项的表达式,则表达式应该用括号括起来。如果写成
        (int)x+y
    则只将x转换成整型,然后与y相加。

    以上强制类型转换的形式是原来C语言使用的形式,C++把它保留了下来,以利于兼容。C++还增加了以下形式:
        类型名(表达式)

        int(x)

        int(x+y)

    类型名不加括号,而变量或表达式用括号括起来。这种形式类似于函数调用。但许多人仍习惯于用第一种形式,把类型名包在括号内,这样比较清楚。

    需要说明的是在强制类型转换时,得到一个所需类型的中间变量,但原来变量的类型未发生变化。例如:
        (int)x
    如果x原指定为float型,值为3.6,进行强制类型运算后得到一个int型的中间变量,它的值等于3,而x原来的类型和值都不变。

    【例2.4】强制类型转换。

    #include <iostream>
    using namespace std;
    int main( )
    {
      float x;
      int i;
      x=3.6;
      i=(int)x;
      cout<<"x="<<x<<",i="<< i<<endl;
      return 0;
    }

    运行结果如下:
       x=3.6,i=3
    x的型仍为float型,值仍等于3.6。

    由上可知,有两种类型转换,一种是在运算时不必用户指定,系统自动进行的类型转换,如3+6.5。第二种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。此外,在函数调用时,有时为了使实参与形参类型一致,可以用强制类型转换运算符得到一个所需类型的参数。

    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4610973.html
Copyright © 2011-2022 走看看