浅议C/C++数据类型转换
浅议C/C++数据类型转换
一、
何为数据类型
在C语言版的数据结构中我们就学过,数据类型表达了一个值的集合以及定义在这个值集上的一组操作的总称。每一种不同的数据类型都有各自不同的操作从而实现不同的功能。
比如在整形int上面就定义了一些列操作+,-,*,/,%等,并且经过计算后结果还是整形(数据类型值的封闭性)。在字符串string上定义了strcat,strcpy等操作,并且返回的也都是字符串。
二、
为什么需要数据类型转换
由于一种数据类型的表现形式或者功能有限,因而需要转换到另外一种数据类型去实现相应的功能。比如字符串类型表示的数字要参与数学计算,那肯定得先进行类型转化;
三、
C中的数据类型转换
C语言中的类型转换有同种类型的转换和不同类型的转化。同种类型的转换比如int系列的转换,包括隐式转换和显示转换。不同种类型的转换则需要借组函数来完成,比如字符串型数据转化成整形或者浮点型,需要函数atoi或者strtod来转换。
四、
C++中的数据类型转换
在C++中,除了继承C语言中的一些类型转换方式外,还提供了static_cast、dynamic_cast、reinterpret_cast和const_cast四个函数来完成更广意义上的转换。主要原因是C++支持面向对象编程,因而转换也变得多种多样。