float a = 1.0f;
cout << (int)a << endl; //强制转换为整形,输出为1
cout << &a << endl; //输出a的地址
cout << (int&)a << endl; //把a在内存单元中的值按整形输出
cout <<boolalpha<<((int)a ==(int&)a) << endl;
输出如下:
1
001FFBC0
1065353216
false
float b = 0.0f; cout << (int)b << endl; cout << &b << endl; cout << (int&)b << endl; cout <<boolalpha<<((int)b ==(int&)b) << endl;
输出如下:
0001FFBB40true
因为float 类型的1和0以整数类型存放存放内存数据是不一样的!
float 0 以整数型式和浮点类型存放数据方式是一样的,但是1就不一样。
cout << (int)a << endl; //强制转换为整形,输出为1
cout << &a << endl; //输出a的地址
cout << (int&)a << endl; //把a在内存单元中的值按整形输出
cout <<boolalpha<<((int)a ==(int&)a) << endl;
输出如下:
1
001FFBC0
1065353216
false
float b = 0.0f; cout << (int)b << endl; cout << &b << endl; cout << (int&)b << endl; cout <<boolalpha<<((int)b ==(int&)b) << endl;
输出如下:
0001FFBB40true
因为float 类型的1和0以整数类型存放存放内存数据是不一样的!
float 0 以整数型式和浮点类型存放数据方式是一样的,但是1就不一样。