c++类型转换不是原样复制内存中的内容,例如以下代码:
short test = 0xFFFF;
cout << test << endl;//存储在short中的0XFFFF
int test2 = test;
cout << test2 << endl;//类型转换到int型的变量中
test2 = 0xFFFF;
cout << test2 << endl;//int类型存储变量0xFFFF
输出结果:
-1
-1
65535
显然直接存储到int型中和经过了类型转换得到的数据并不相同,也就是在类型转换过程中内存中的内容被改变了