float fNum = 12.3;
int *pF = (int *)&fNum;
printf("fNum:%f pF:%d \n", fNum, *pF);
*pF = 233;
printf("fNum:%f pF:%d \n", fNum, *pF);

return 0;

结果是这样的
fNum:12.300000 pF:1095027917
fNum:0.000000 pF:233

我想知道为什么会这样?不是指向同一个内存吗?

最佳答案

首先,变量fNum不指向任何内容。这是实际价值。
浮点数和整数不一样。对于浮点数,内存中的位模式非常不同。

10-08 09:30