- 传送门:博客汇总帖
1、为什么要进行强制类型转换?
-
什么是数据类型?
数据类型说明了一个变量的属性(空间大小以及存储结构),空间大小是指变量在内存中所占字节数,存储结构说明了变量是以什么类型的存储结构在内存中存储。比如:int a;从这个语句就可以看出,变量a在内存中所占空间大小是4字节,以int类型的结构存储在内存中。 -
接下来说为神马要进行强制类型转换?
因为有的时候我们需要将某些类型的数据转换为另一种类型的数据,比如:float a = 10;当我们需要一个整形的10,就可以将a转换为int型 int b = (int)a;
2、强制类型转换(对于普通变量)
在强制类型转换的过程中,可能会改变空间大小,也可能改变存储结构。
2.1 改变空间大小
char a = 1;
int b = (int)a;
在这段代码中,a的空间大小是1个字节,b的空间大小是4字节,char类型与int类型都是整型的数据类型,所以相互转换其存储结构不会发生改变,只改变空间大小。这里就是将1个字节转化为4个字节
int a = 0x11223344;
char b = (char)a;
在这段代码中,a占4个字节,b占一个字节,所以将int类型转换为char类型必将丢失3个字节数据,至于会留下0x11还是留下0x44ÿ