赞
踩
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- using namespace std;
-
- int main()
- {
- float a = 1.0f;
-
- cout << (int)a << endl; //将浮点型强制转换为整型1
- cout << &a << endl; //取a的地址十六进制00A7FD68
- cout << (int)&a << endl; //把a的地址强制转换成十进制的整型11009384
- cout << (int&)a << endl; //将a的引用强制转化为整型
-
- return 0;
- }

输出结果如下:
"cout << (int&)a << endl;"输出的结果是1065353216, 而不是1。这是因为浮点数在内存里和整数的存储方式不同,(int&)a相当于将该浮点数地址开始的sizeof(int)个字节当成int型的数据输出,因此这取决于float型数据在内存中的存储方式,而不
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。