这句代码哪里写错了:std::cout << *reinterpret_cast<float*>(&a) << " " << *reinterpret_cast<float*>(&a) != *reinterpret_cast<float*>(&a) << std::endl;
时间: 2024-02-18 20:01:53 浏览: 114
4BYTE转换成float型代码
5星 · 资源好评率100%
这句代码中存在一个运算符优先级的问题,具体来说,是 `!=` 运算符的优先级比 `<<` 运算符低,因此需要使用括号改变优先级,正确的代码应该是:
```
std::cout << *reinterpret_cast<float*>(&a) << " " << (*reinterpret_cast<float*>(&a) != *reinterpret_cast<float*>(&a)) << std::endl;
```
这样才能先计算 `!=` 运算符,再将结果和前面的输出一起传递给 `<<` 运算符进行打印。
阅读全文