首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮小弟我看看这个结果

2012-02-09 
帮我看看这个结果floatb0.0fcout (int)b (int)b endlcout (int&)b (int&)b en

帮我看看这个结果
float   b   =   0.0f;
cout   < < "(int)b= " < <   (int)b   < <   endl;
cout   < < "(int&)b= " < <   (int&)b   < <   endl;
cout   < <   boolalpha   < <   (   (int)b   ==   (int&)b   )   < <   endl;
输出为true;
(int&)b怎么=0,是b的地址吗,b的地址不一定=0啊,

[解决办法]
打印的是0的float型数据吧
[解决办法]
(int&)b怎么=0,是b的地址吗,b的地址不一定=0啊,
======================
不是b的地址,&b才是地址..
[解决办法]
0.0f 是char *
初值为0

[解决办法]
嗯 你 我也不记得了 你试试float b = 1.0f;

1.0f在内存中是 0x3f800000
估计用这个就试false了

0.0f太特殊了 比较没意思
[解决办法]
思路不够清晰哦。。
既然你想打印b的地址,怎么还能拿b的地址与b比较

float b = 0.0f;
cout < < "(int)b= " < < (int)b < < endl;
cout < < "(int&)b= " < < &b < < endl;
cout < < boolalpha < < ( (int)b == int(&b)) < < endl;

不觉得这程序有点怪怪的?

[解决办法]
float b = 0.0f;
cout < < "(int)b= " < < (int)b < < endl;
cout < < "(int&)b= " < < (int&)b < < endl;
cout < < boolalpha < < ( (int)b == (int&)b ) < < endl;
输出为true;
(int&)b怎么=0,是b的地址吗,b的地址不一定=0啊,
--------------------------------------------------
(int&)b不是b的地址,是将b转化为int型引用,相当于下面的表达式*((int *)(&b)),取b的地址,然后强制转化为int *,然后取得此指针所指向的内存的内容。
(int&)b = 0,这个跟浮点数在内存中的表达方式有关。并不是在所有类型的机器上都等于0。
(int)b等于0, (int&)b也等于0,so 输出为true.

热点排行