首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

软件工程师面试宝典下有一个c++题,不明白(int&)的意思

2012-09-05 
程序员面试宝典上有一个c++题,不明白(int&)的意思,求助#include iostream#include stdio.h#include s

程序员面试宝典上有一个c++题,不明白(int&)的意思,求助
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
float a = 1.0f;
cout << sizeof(int) <<endl;//4
cout << sizeof(float) <<endl;//4
cout << (int)a << endl;//1
cout << &a << endl;
cout << (int)&a << endl;
cout << (int&)a << endl;
   

cout << boolalpha << ((int)a == (int&)a ) << endl;// 输出false.因为1!=1065353216.
float b = 0.0f;
cout << (int)b << endl;//0
cout << &b << endl;
cout << (int&)b << endl;//0
cout << boolalpha << ((int)b == (int&)b ) << endl;// 输出true,因为0==0;
return 0;
}
===========
也可以参见这里,http://blog.sina.com.cn/s/blog_96551047010122m9.html。
=========
答案意思是说,(int&)a从a地址处连续去四个字节,就像int一样取。谁能讲一下原理?我记得c语言里同样意思可以如是表达:*(int *)&a。但是c++不熟悉啊

[解决办法]
扔了那破书吧,你会更面试不上好单位的。

热点排行
Bad Request.