...C++又不懂的地方请指教为什么这个程序结果为 1;1;1;呢?
发布网友
发布时间:2024-10-03 16:14
我来回答
共3个回答
热心网友
时间:2024-10-24 22:07
你这个程序有错误:
int& ra ;
ra=a;
应该改为:int & ra = a;
因为引用必须在声明的时候初始化。
那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:
ra==a// 对应同一份内存
&ra==&a// 对应同一个地址
sizeof(ra)==sizeof(a)// 同样的字节长度
热心网友
时间:2024-10-24 22:12
ra是a的引用,ra跟a是一样的,不过ra是a的另一个名字,
就等于,你本来有个名字一,还有个名字二,
名字一==名字二 当然等于一,因为就是你本人
名字一所在住址 == 名字二所在住址 当然也是一,因为你就住在一个地方
sizeof(名字一) == sizeof(名字二) 当然也是一,因为你的体积就是这么大。
热心网友
时间:2024-10-24 22:12
ra这里声明为引用变量了,但是引用变量是在声明时同时就要初始化的,所以要把int & ra;ra=a;改为int & ra=a;
引用就是原变量的一个别名,除了名字不一样之外它俩是一样一样一样的,代表的是同一段地址空间,然后下边这几个就是比较这两个一样的东西的值、地址、大小(size)是否一样。==是判断是否相等的运算符,相等返回1,不等返回0,显然都是相等的,所以返回1;1;1