| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:求助关于类型转换 谢谢
取消只看楼主 加入收藏
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
结帖率:81.25%
收藏
已结贴  问题点数:10 回复次数:6 
求助关于类型转换 谢谢
void main()
{
    float a=1.0f;
    cout<<(int)a<<endl;
    cout<<&a<<endl;
    cout<<(int &)a<<endl;
    cout<<((int)a==(int &)a)<<endl;
    float b=0.0f;
    cout<<(int)b<<endl;
    cout<<(&b)<<endl;
    cout<<(int &)b<<endl;
    cout<<((int)b==(int &)b)<<endl;
}
结果都输出什么啊 a和b的类型一样,为什么最后的结果不一样,一个得1一个得0,麻烦讲下原理,看书上的解释没看懂,谢谢
搜索更多相关主题的帖子: void void 
2011-09-25 11:41
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
不是 这是面试宝典上的原题,这种形式就是强制转换呀,这不是挺常见吗
2011-09-25 11:51
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
回复 4楼 拾忆
那个我加了 我是每段问最后那句cout<<((int)a==(int &)a)<<endl和cout<<((int)b==(int &)b)<<endl;的结果为什么不一样,前边那些输出都不算
2011-09-25 11:55
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
回复 7楼 TonyDeng
表达式的结果无非是0和1,但是a和b的结果为什么不一样呢,a和b都是float,按理应该一样啊,我觉得都应该是0呀
2011-09-25 12:02
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
我的理解是:(int)a等于1,而(int&)a是将a的地址被int容纳下的部分转换为int,肯定不一样,结果就是0;但是关于b的部分为什么等于1,b和a不是一样的吗
2011-09-25 12:06
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
答案都给出来了,就是0和1,b虽然是0,但是按float存储的呀,难道就因为它是0就按int存储了,继续求助-----
2011-09-25 12:10
大大猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2011-8-19
收藏
得分:0 
终于明白了 请教了个大神
2011-09-25 14:56
快速回复:求助关于类型转换 谢谢
数据加载中...
 
   



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

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