| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4024 人关注过本帖
标题:求大神帮忙 int i= *(int *)&x这行代码是什么意思
只看楼主 加入收藏
sefeeee
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2015-2-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
求大神帮忙 int i= *(int *)&x这行代码是什么意思
float x=1.1f;
int i= *(int *)&x;  //这行代码是什么意思
2015-02-25 17:57
猫林heart
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:60
专家分:390
注 册:2014-9-26
收藏
得分:5 
int i= *(int *)&x; 将变量x的地址强制转换为“指向整型的指针”,然后对其进行间接访问。
2015-02-25 18:56
sefeeee
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2015-2-9
收藏
得分:0 
回复 2楼 猫林heart
我感觉不是 如果说是这种情况的话。类似int i = (int)x;  但是i 不等于1呀
2015-02-25 19:14
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:5 
对int类型的变量i定义并赋值

其运算顺序按运算的优先级为

先对float类型的变量x通过&取地址运算符来取x的地址
得到了指向x变量的指针变量的值
再对&x这个float*类型指针变量的值进行强制类型转换为int*的指针变量的值
再通过*取值运算符求(int*)&x这个指针变量指向的int类型的值
最后通过=赋值运算符赋值给i

真是一种很foo的赋值操作

你是不是想做这样的操作
i = (int)x

Only the Code Tells the Truth             K.I.S.S
2015-02-25 19:15
sefeeee
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2015-2-9
收藏
得分:0 
回复 4楼 longwu9t
你说的这种情况我也想到过,但是运行的结果不对。按这种思维去运行的结果i=1.但是i不等于1
2015-02-25 19:35
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
推荐楼主看一下这篇网文 http://www.
其实与C语言关系不大
用C的时候只记住不要写这样的代码就行了
float x=1.1f;
int i= *(int *)&x;  //这行代码是什么意思

Only the Code Tells the Truth             K.I.S.S
2015-02-25 19:37
sefeeee
Rank: 2
等 级:论坛游民
帖 子:11
专家分:25
注 册:2015-2-9
收藏
得分:0 
回复 6楼 longwu9t
行,谢谢你了。
2015-02-25 20:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
以下是引用longwu9t在2015-2-25 19:37:20的发言:

用C的时候只记住不要写这样的代码就行了

太多人喜歡寫這類代碼了,以爲繞了又繞就是深刻理解C語言。

授人以渔,不授人以鱼。
2015-02-25 22:34
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
同意楼上,能用简单明白的代码写出就不要绕来绕去

一片落叶掉进了回忆的流年。
2015-02-26 11:41
快速回复:求大神帮忙 int i= *(int *)&x这行代码是什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016418 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved