标题:[讨论]问下这个,面试题目。
只看楼主
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
 问题点数:0 回复次数:8 
[讨论]问下这个,面试题目。
float i = 1.0;

cout<<(int)i<<endl;
cout<<(int&)i<<endl;

输出什么?请请解释,
搜索更多相关主题的帖子: 面试 int cout endl 
2007-05-06 19:48
lovecsky
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-4-22
得分:0 

不是地址,是地址的话,每次分配空间后,空间地址有可能会变,而(int &)i输出的是一个定值。

2007-05-06 21:50
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
得分:0 

float i = 1.0;

cout<<(int)i<<endl;//类型转换
cout<<(int&)i<<endl;//转化为整型的引用,引用就是取指针指向的值,本质还是指针,我想考的是看浮点数 1.0 的二进制形式直接作为整型输出的话会是多少吧,整型和浮点型的二进制表示形式不同,第一个方法 C ++会做类型转换的处理,这样浮点型的 1.0 变成整型后会是1,而后面一个会是一个莫明奇妙的数。


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-05-06 22:03
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
得分:0 

可不可以详细解释下,不懂第2的个输出。


2007-05-06 22:54
幽灵嫖客
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-1-15
得分:0 
cout<<(float&)i 直接指向float的引用,就是它自身的另外一种访问方式;
cout<<(int &)i 指向int的引用,就好像版主说得是1.0浮点在机器中二进制所对应的整形
不知说得队不?

C primer plus
2007-05-07 06:44
未入流小菜鸟
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-5-1
得分:0 
调试了一下,
先输出i的地址,然后通过内存窗口查看,里面的值就是(int &)i的输出值。
4楼版主是正解!!!
2007-05-08 21:57
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
得分:0 

用这个程序可以看每个c++编译器里任何类型的内存单元的二进制值(从高地址到低地址显示)
#include <iostream>
using namespace std;

template <typename OStream,typename T1>
void GetBinary(OStream outs,T1 in)
{
T1 data = in;
unsigned char c = 1<<7,j = 0,k;
const unsigned char* p = (unsigned char*)&data+sizeof(data)-1;//转到高地址

for(int i = 0 ;i<sizeof(data);++i,--p)
{
c = 1<<7;
for(j = 0;j<8;j++)
{
k = *p & c;
k>>=(7-j);
c>>=1;
outs<<(unsigned int)k;
}
outs<<endl;
}
}

void main()
{
float i = -0.5f;
GetBinary(cout,i);
}


马马乎乎
2007-05-09 16:47
jiushiwo
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-3-10
得分:0 
1
1065353216
Press any key to continue

第二个不就是地址吗,就是指向 整形的引用

做你自己! everything will go! lanfei_1234@
2007-05-09 22:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-137299-1-1.html




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

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