C++中的类型转换用法示例和解析

类型转换基本上是从一种类型到另一种类型的转换。类型转换有两种类型:
隐式类型转换
也称为” 自动类型转换” 。

  • 由编译器自行完成, 无需用户的任何外部触发。
  • 通常在表达式中存在多个数据类型时发生。在这种情况下, 将进行类型转换(类型提升)以避免数据丢失。
  • 变量的所有数据类型将升级为具有最大数据类型的变量的数据类型。
    bool -> char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double

  • 隐式转换可能会丢失信息, 符号可能会丢失(将符号隐式转换为无符号), 并且会发生溢出(当long long被隐式转换为float时)。
类型隐式转换的示例:
// An example of implicit conversion#include < iostream> using namespace std; int main() { int x = 10; // integer x char y = 'a' ; // character c// y implicitly converted to int. ASCII // value of 'a' is 97 x = x + y; // x is implicitly converted to float float z = x + 1.0; cout < < "x = " < < x < < endl < < "y = " < < y < < endl < < "z = " < < z < < endl; return 0; }

输出如下:
x = 107 y = a z = 108

显式类型转换:此过程也称为类型转换, 它是用户定义的。用户可以在此处键入结果以使其具有特定的数据类型。
在C++中, 可以通过两种方式完成:
通过分配转换:这是通过在括号中的表达式前面明确定义所需的类型来完成的。这也可以视为强制类型转换。
语法如下:
(type) expression

其中类型指示将最终结果转换为的数据类型。
例子:
// C++ program to demonstrate // explicit type casting#include < iostream> using namespace std; int main() { double x = 1.2; // Explicit conversion from double to int int sum = ( int )x + 1; cout < < "Sum = " < < sum; return 0; }

输出如下:
Sum = 2

使用强制转换操作符的转换:强制转换操作符是一种一元操作符,它强制将一种数据类型转换为另一种数据类型。
C++支持四种类型的转换:
静态转换
动态转换
const转换
重新解析转换
例子:
#include < iostream> using namespace std; int main() { float f = 3.5; // using cast operator int b = static_cast < int > (f); cout < < b; }

输出如下:
3

类型转换的优点:
  • 这样做是为了利用类型层次结构或类型表示形式的某些功能。
  • 它有助于计算包含不同数据类型变量的表达式。
【C++中的类型转换用法示例和解析】被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。

    推荐阅读