📅  最后修改于: 2020-09-25 05:49:17             🧑  作者: Mango
C++允许我们将一种类型的数据转换为另一种类型的数据。这称为类型转换。
C++中有两种类型的类型转换。
由编译器自动完成的类型转换称为隐式类型转换。这种类型的转换也称为自动转换。
让我们看一下隐式类型转换的两个例子。
// Working of implicit type-conversion
#include
using namespace std;
int main() {
// assigning an int value to num_int
int num_int = 9;
// declaring a double type variable
double num_double;
// implicit conversion
// assigning int value to a double variable
num_double = num_int;
cout << "num_int = " << num_int << endl;
cout << "num_double = " << num_double << endl;
return 0;
}
输出
num_int = 9
num_double = 9
在程序中,我们将int
数据分配给double
变量。
num_double = num_int;
此处,在将int
值分配给num_double
变量之前,它会由编译器自动转换为double
。这是隐式类型转换的示例。
//Working of Implicit type-conversion
#include
using namespace std;
int main() {
int num_int;
double num_double = 9.99;
// implicit conversion
// assigning a double value to an int variable
num_int = num_double;
cout << "num_int = " << num_int << endl;
cout << "num_double = " << num_double << endl;
return 0;
}
输出
num_int = 9
num_double = 9.99
在程序中,我们已经将一个double
数据分配给一个int
变量。
num_double = num_int;
在此, double
num_int
值在分配给num_int
变量之前,会由编译器自动转换为int
。这也是隐式类型转换的示例。
注意:由于int不能有小数部分,因此在上面的示例中,小数点后的数字被截断了。
从上面的示例可以看出,从一种数据类型转换为另一种数据类型很容易导致数据丢失。当较大类型的数据转换为较小类型的数据时,会发生这种情况。
当用户手动将数据从一种类型更改为另一种类型时,这称为显式转换 。这种类型的转换也称为类型转换 。
我们可以使用三种主要方法在C++中使用显式转换。他们是:
顾名思义,这种类型的转换受到C编程语言的青睐。也称为强制转换表示法 。
这种样式的语法是:
(data_type)expression;
例如,
// initializing int variable
int num_int = 26;
// declaring double variable
double num_double;
// converting from int to double
num_double = (double)num_int;
我们还可以使用诸如表示法之类的函数将数据从一种类型转换为另一种类型。
这种样式的语法是:
data_type(expression);
例如,
// initializing int variable
int num_int = 26;
// declaring double variable
double num_double;
// converting from int to double
num_double = double(num_int);
#include
using namespace std;
int main() {
// initializing a double variable
double num_double = 3.56;
cout << "num_double = " << num_double << endl;
// C-style conversion from double to int
int num_int1 = (int)num_double;
cout << "num_int1 = " << num_int1 << endl;
// function-style conversion from double to int
int num_int2 = int(num_double);
cout << "num_int2 = " << num_int2 << endl;
return 0;
}
输出
num_double = 3.56
num_int1 = 3
num_int2 = 3
我们使用C样式类型转换和函数样式转换进行类型转换,并显示结果。由于它们执行相同的任务,因此两者都给我们相同的输出。
除了这两个类型转换外,C++还具有四个用于类型转换的运算符 。它们被称为类型转换运算符 。他们是:
我们将在以后的教程中了解这些强制转换。
推荐的教程: