2.4 类型转换
类型转换是用来把一个类型的值转换成另一个类型。C++(www.cppentry.com)是强类型的语言,每一个值都有它相应的类型。当用户需要把一个类型的值转换为另一个类型时,就需要使用一些方式进行类型转换。在C++(www.cppentry.com)中,支持隐式转换和显式转换两种。
2.4.1 隐式转换
隐式转换就是系统默认的,不需要加以声明就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。比如从int类型转换到long类型、从char类型转换到int类型就是一种隐式转换。隐式转换一般不会失败,转换过程中也不会导致信息丢失。
例如,下面程序实现数据类型的隐式转换,将整形数据类型转换为长整型数据类型、将字符型数据类型转换为整型数据类型。实现代码如下:
- #include <iostream>
- using namespace std;
- int main()
- {
- int a=100; //定义整型变量
- long b; //定义长整型变量
- b=a; //变量赋值
- cout<<"a="<<a<<","<<"b="<<b<<endl;
- char ch='a'; //定义字符型变量
- a=ch;
- cout<<"ch="<<ch<<","<<"a="<<a<<endl; //输出变量的值
- system("pause");
- return 0;
- }
上述程序声明了一个整型变量a、一个长整型变量b和一个字符型变量ch,并在声明变量i的同时给变量a和ch赋初值。该程序中语句b=a;就需要将整型数据类型转换为长整型数据类型,而语句a=ch;就需要将字符型的值转换为整型值,C++(www.cppentry.com)编译器自动实现了其之间的转换,这就是隐式转换。
将上述程序输入到DEV-C++(www.cppentry.com)编辑器中,编译并运行,结果如图2.15所示。
|
| (点击查看大图)图2.15 隐式转换 |
需要注意的是,图2.15中输出整型变量a的值为97。这是因为字母a对应的ASCII码值为97。由此可看出,字符型和整型数据类型之间可以相互转换。