求助高人。。。。。新人学习C++又不懂的地方请指教为什么这个程序结果为 1;1;1;呢?

#include<iostream>usingnamespacestd;intmain(){inta(8);int&ra;ra=a;cout<<(ra==a)<<";";... #include<iostream>
using namespace std;
int main()
{
int a(8);
int& ra ;
ra=a;
cout<<(ra==a)<<";";
cout<<(&ra==&a)<<";";
cout<<(sizeof(ra)==sizeof(a))<<endl;
return 0;
}
展开
 我来答
dongyue2008
2011-01-21 · TA获得超过3606个赞
知道大有可为答主
回答量:1300
采纳率:100%
帮助的人:690万
展开全部
你这个程序有错误:
int& ra ;
ra=a;
应该改为:int & ra = a;
因为引用必须在声明的时候初始化。
那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:
ra==a// 对应同一份内存
&ra==&a// 对应同一个地址
sizeof(ra)==sizeof(a)// 同样的字节长度
百度网友6205bc1
2011-01-21 · TA获得超过6004个赞
知道大有可为答主
回答量:5933
采纳率:20%
帮助的人:3004万
展开全部
ra是a的引用,ra跟a是一样的,不过ra是a的另一个名字,
就等于,你本来有个名字一,还有个名字二,
名字一==名字二 当然等于一,因为就是你本人
名字一所在住址 == 名字二所在住址 当然也是一,因为你就住在一个地方
sizeof(名字一) == sizeof(名字二) 当然也是一,因为你的体积就是这么大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xyzprb
2011-01-21 · TA获得超过133个赞
知道答主
回答量:139
采纳率:0%
帮助的人:76.4万
展开全部
ra这里声明为引用变量了,但是引用变量是在声明时同时就要初始化的,所以要把int & ra;ra=a;改为int & ra=a;
引用就是原变量的一个别名,除了名字不一样之外它俩是一样一样一样的,代表的是同一段地址空间,然后下边这几个就是比较这两个一样的东西的值、地址、大小(size)是否一样。==是判断是否相等的运算符,相等返回1,不等返回0,显然都是相等的,所以返回1;1;1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式