C++ 中的类型转换


本文介绍 C++ 中存在的类型转换方式。类型转换通常分为隐式和显式两种。

  • 隐式类型转换

    隐式类型转换也被称为自动类型转换,是编译器在未经用户外部触发下完成的。当表达式中存在多于一种数据类型时将发生这种情况。

    所有数据类型都将升级到较大变量的数据类型。

bool -> char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double

隐式转换可能导致部分信息丢失,例如符号。

示例

 在线演示

#include <iostream>
using namespace std;
int main() {
   int a = 10;
   char b = 'a';
   a = b + a;
   float c = a + 1.0;
   cout << "a : " << a << "\nb : " << b << "\nc : " << c;
}

输出

a : 107
b : a
c : 108

显式类型转换

显式类型转换也被称为类型转换。在此,用户可以将结果强制转换为特定的数据类型。在 C++ 中,有两种方法可以实现此功能,一种是使用括号中的表达式,另一种是使用 static_cast 或 dynamic_cast

示例

 在线演示

#include <iostream>
using namespace std;
int main() {
   double x = 1.574;
   int add = (int)x + 1;
   cout << "Add: " << add;
   float y = 3.5;
   int val = static_cast<int>(y);
   cout << "\nvalue: " << val;
}

输出

Add: 2
value: 3

更新于: 2020 年 1 月 3 日

2K+ 次观看

开启您的 职业生涯

完成课程认证

开始
广告