
求助高人。。。。。新人学习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;
} 展开
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;
} 展开
3个回答
展开全部
你这个程序有错误:
int& ra ;
ra=a;
应该改为:int & ra = a;
因为引用必须在声明的时候初始化。
那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:
ra==a// 对应同一份内存
&ra==&a// 对应同一个地址
sizeof(ra)==sizeof(a)// 同样的字节长度
int& ra ;
ra=a;
应该改为:int & ra = a;
因为引用必须在声明的时候初始化。
那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:
ra==a// 对应同一份内存
&ra==&a// 对应同一个地址
sizeof(ra)==sizeof(a)// 同样的字节长度
展开全部
ra是a的引用,ra跟a是一样的,不过ra是a的另一个名字,
就等于,你本来有个名字一,还有个名字二,
名字一==名字二 当然等于一,因为就是你本人
名字一所在住址 == 名字二所在住址 当然也是一,因为你就住在一个地方
sizeof(名字一) == sizeof(名字二) 当然也是一,因为你的体积就是这么大。
就等于,你本来有个名字一,还有个名字二,
名字一==名字二 当然等于一,因为就是你本人
名字一所在住址 == 名字二所在住址 当然也是一,因为你就住在一个地方
sizeof(名字一) == sizeof(名字二) 当然也是一,因为你的体积就是这么大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ra这里声明为引用变量了,但是引用变量是在声明时同时就要初始化的,所以要把int & ra;ra=a;改为int & ra=a;
引用就是原变量的一个别名,除了名字不一样之外它俩是一样一样一样的,代表的是同一段地址空间,然后下边这几个就是比较这两个一样的东西的值、地址、大小(size)是否一样。==是判断是否相等的运算符,相等返回1,不等返回0,显然都是相等的,所以返回1;1;1
引用就是原变量的一个别名,除了名字不一样之外它俩是一样一样一样的,代表的是同一段地址空间,然后下边这几个就是比较这两个一样的东西的值、地址、大小(size)是否一样。==是判断是否相等的运算符,相等返回1,不等返回0,显然都是相等的,所以返回1;1;1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询