请问一个C++基本有关问题

请教一个C++基本问题floata1.0fcout (int)a endlcout (int&)a endlcout boolalpha ((int)

请教一个C++基本问题
float   a   =   1.0f;  
cout   < <   (int)a   < <   endl;  
cout   < <   (int&)a   < <   endl;  
cout   < <   boolalpha   < <   (   (int)a   ==   (int&)a   )   < <   endl;

输出是:
1
1065353216
false

(int&)a   是把a给转成什么了?指针还是引用?
打印出来的是什么东西的地址?指针还是引用?

请教,多谢!

[解决办法]
个人理解,应该是转化为引用。
实际上在输出时得到的a的地址。
如果输出16进制的值会看得更清楚一些。

[解决办法]
你试试cout < < (float&)a < < endl;
cout < <&a < <endl;
就应该知道是指针还是引用了
[解决办法]
hehe 我试了下
1065353216是0x3F800000,这就是float中的1的内存数据表示
(int&)a直接将内存浮点类型当int输出 (int )a 将内存中浮点数据强制转换成int表示后再输出
[解决办法]
单精度浮点数:
符号 指数 尾数
1b 8b 23b

float a=1.0, 对应的:
符号 :0==0x0
指数:127==0x7f
尾数:0==0x0

合起来就是0x3f800000

另:8 位的指数为可以表达 0 到 255 之间的 255 个指数值。但是,指数可以为正数,也可以为负数。为了处理负指数的情况,实际的指数值按要求需要加上一个偏差(Bias)值作为保存在指数域中的值,单精度数的偏差值为 127。单精度的实际指数值 0 在指数域中将保存为 127;而保存在指数域中的 64 则表示实际的指数值 -63。
[解决办法]
int&a 脱掉int &a
穿上衣服 int

是地址,把a的地址再转化为int.
感觉还是不对,, (int)&a

放在外面。。。 有些讲不通,,期待高手的出现。。
(int&) 跟函数有没有关系? 有没有空函数 int&(){}

关注。。。