现在的位置: 首页 > 综合 > 正文

(int&)b 使用int类型来输出b的内存地址里的数据

2013年03月16日 ⁄ 综合 ⁄ 共 482字 ⁄ 字号 评论关闭
float b=1.0f;
	cout<<"int(b)    "<<int(b)<<endl;
	cout<<"(int&)b   "<<(int&)b<<endl;
	cout<<"(int)&b   "<<(int)&b<<endl;
	cout<<boolalpha<<"((int)b==(int&)b)     "<<((int)b==(int&)b)<<endl;

	int a=1;
	cout<<"a         "<<a<<endl;
	cout<<"(int&)a   "<<(int&)a<<endl;
	cout<<"(int)&a   "<<(int)&a<<endl;
	cout<<boolalpha<<"((int)a==(int&)a)     "<<((int)a==(int&)a)<<endl;

 

 

cout << (int&)b << endl;,这句话应该是直接使用int类型来输出b的内存地址里的数据。0.0f时float类型的内存段里的32bit都为0。
cout << (int)&b << endl是把b的地址转化为int值输出。

float的结构为
1个符号位,8个阶码位和23个尾数位

double为
1个符号位,11个阶码位,52个尾数位

抱歉!评论已关闭.