鱼C论坛

 找回密码
 立即注册
查看: 1150|回复: 1

[已解决]用指针进行数据强制转换

[复制链接]
发表于 2022-7-9 10:14:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



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


这一句中的*( float  *)(&ui)运算符的结合方式是怎么解读的?主要是(&ui)取出ui的地址后,左边的*( float  *)是怎么解读?
最佳答案
2022-7-9 10:33:25

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

原理参考:
https://wenku.baidu.com/view/18b ... 270722192e5904.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-9 10:33:25 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +10 鱼币


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

原理参考:
https://wenku.baidu.com/view/18b ... 270722192e5904.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 04:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表