在编写代码中有时 需要 进行 强制类型 转换,我们都知道大数据 类型转化成小数据类型会出现截断的情况,所以一般不会做这样的转换。
其实小数据类型转换成大数据类型,使用不当也会有问题,比如下面的代码:
int i =7;
long j;
j = i;
那么j是7吗?不是,因为局部变量j没有初始化赋值,所以一开始它的值是不确定的。j=i,只是覆盖了sizeof(int)的长度,并没有覆盖sizeof(long)。
因此局部变量j需要初始化成0,才能保证j是7.
我们在写代码中也需要注意这些细节,局部变量都要赋初值,不然可能会引入一些难以发现的bug。