folat b = 0.0f ,怎么(int&)b =0呢,不是等于一个地址吗
float b = 0.0f;
cout < < (int)b < < endl;
cout < < (int&)b < < endl;
cout < < boolalpha < < ( (int)b == (int&)b ) < < endl;
如题目,为什么呢
[解决办法]
你把这个题改成这样看看:
float b = 1.0f;
cout < < (int)b < < endl;
cout < < (int&)b < < endl;
cout < < boolalpha < < ( (int)b == (int&)b ) < < endl;
主要是float的数据格式问题
(int)会将float数据转换成int形的
而另外一个应该是不会的 :)
1.0f 对应的内存中表示的为: 0x3f800000
1 对应的内存中表示为: 0x00000001
这样就比较好看了
0太特殊了, 你用0比较没有意义
[解决办法]
(int&)b
是将b地址中对应的数据按照规定的int格式方式显示出来
[解决办法]
float b = 0.0f;
(int)b //把数据强转为int型,一般只会丢失小数部分
(int)&b //把b的地址转为int数
(int&)b 把b处的内存bit按int型数据解释.
[解决办法]
请高手告诉我那个0.0f中的f是什么意思啊
[解决办法]
K
(int&)b =0 这是什么东西啊
[解决办法]
那个0.0f中的f是什么意思啊?
告诉编译器这是一个float数,而不是double数