随缘也是缘 发表于 2022-7-9 10:14:28

用指针进行数据强制转换

#include <stdio.h>
intmain()
{
unsigned ui = 0x3f8ccccd;
floatf1 = ( float ) ui;//错误 ,转换的意义不正确
printf ( "%f\n" , f1);
floatf2 = *( float*)(&ui);//正确,通过指针改变内存数据的意义
printf ( "%f\n" , f2);
return0;
}



floatf2 = *( float*)(&ui);//正确,通过指针改变内存数据的意义


这一句中的*( float*)(&ui)运算符的结合方式是怎么解读的?主要是(&ui)取出ui的地址后,左边的*( float*)是怎么解读?

ba21 发表于 2022-7-9 10:33:25


解读:(&ui)取得ui的地址。( float*)把该地址强转为float类型的指针,*( float*) 获取float指针处的值。

原理参考:
https://wenku.baidu.com/view/18b8bc3cbfd126fff705cc1755270722192e5904.html
页: [1]
查看完整版本: 用指针进行数据强制转换