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
广告