杂项小结

2014年10月23日

int& (int)

(int &)a 就表示 不管 a 是什么,我都当他是一个int变量。

从机器码的角度来说,变量a会被翻译成一个内存地址,(int &)a 就是说,这个内存地址里的内容它是一个整数。

(int)a 呢不同:如果 a 不是整数,就会按规则转换成整数,存入另一个地址(或临时变量)中去。

int&)a:将a的引用强制转换为整型,意思是a所在的内存,本来定义的时候为float类型,并初始为1.0f,

但现在我要按int类型解释这段内存(也就是说a所在的内存地址中的数据本来是按float型存储表示的,你非要按int型来解释不可)。

1.0f 在内存中的存储为 0011 1111 1000 0000 0000 0000 0000 0000. 把他按整型数解释为2^29+2^28+2^27+2^26+2^25+2^24+2^23=1065353216

(int&)a 相当于*(int*)&a ; *(int*)(&a) ; *((int*)&a)