【BT面试题】(int&)a 与 (int)&a

xiaoxiao2026-08-03  6

#include<iostream>using namespace std;void main(){float a = 1.0f;cout << &a << endl;cout << (int)&a << endl;cout << (int&)a << endl;cout << boolalpha << ( (int)a == (int&)a ) << endl; // 输出什么?float b = 0.0f;cout << (int)b << endl;cout << (int&)b << endl;cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出什么?} 输出结果是 1 // a转换为整形 1310588 // a的地址转换为整形 1065353216 // a转化为整形引用 false 0 // b转换为整形 1310584 // b的地址转换为整形 0 // b转化为整形引用 true (int)&a 把a的地址强制转换成整型,(int&)a 把a强制转换成整形引用类型,相当于是某个整形引用,引向了a所在的32位内存区域,并将这32位当做一个整数。 对于浮点数1.0,根据IEEE754的浮点数存储格式表示为3f800000(0011 1111 1000 0000 0000 0000 0000 0000),(int)&a把3f800000当做int型输出,所以结果为1065353216。0 在内存中的的存储形式 0000 0000 0000 0000 0000 0000 0000 0000,当做int型输出后,结果依然为0。 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5050647.html

最新回复(0)