C++上机程序问题---取引用的地址

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:21:19
#include <iostream.h>
void main()
{
int intOne;
int &rSomeRef=intOne;
intOne=5;
cout<<"intOne:"<<intOne<<endl;
cout<<"rSomeRef:"<<rSomeRef<<endl;
cout<<"&intOne:"<<&intOne<<endl;
cout<<"&rSomeRef:"<<&rSomeRef<<endl;
}
程序结果(教材上的答案)
intOne:5
rSomeRef:5
&intOne:OxA200
&rSomeRef:OxA200
上机答案:intOne:5
rSomeRef:5
&intOne:Ox0013FF7C
&rSomeRef:Ox0013FF7C
我想知道地址是怎么运算得到的?这个十六进制的地址依据什么得的?哪个对啊?谢谢!!
我知道引用是目标对象intOne的别名,对引用进行操作就是对intOne操作,我是想知道Ox0013FF7C这个十六进制数是怎么运算出来的。谢谢!!

Ox0013FF7C是计算机给你的程序中这个变量(int intOne)分配的内存的编号,
计算机中的内存都是编好了号的,
这个编号我们无法预知,
只是计算机按它自己的意愿来分配的

引用是别名,它的地址也就是对应变量的地址,只是换了个名字而已。
32位机的地址都是 4 个字节,即 8 个 16 进制数。

那就是取地址符的作用了

不是算出来的,他的内存单元就在那里,是查出来的

可能你下次执行的时候就不是这个值了,因为分配给他的内存单元是另外的

随你的存储位置而定