以下所讨论,都是C++中的概念.
编译代码的时候,在符号表中,引用的地址是引用的变量的地址,指针的地址,是指针自身的地址.也就是说,引用本质上是不存在的,而指针是确实存在的.
int a = 1 ;
int & reference = a ;
int * pointer = &a ;
变量名 | 地址 |
a | 0x0000 |
reference | 0x0000 |
pointer | 0x0004 |
概念上讲是一个相对地址,reference的地址是a变量的地址,pointer的地址是自身的地址.也就是说,引用的存在只是方便代码的编写,并且生成的汇编代码中不会为引用分配内存空间,而是直接引用所引用变量的地址进而使用引用的变量.杨晓东同志果然是高手,这些感触都是在请教他之后写下的,十分感谢他的热心解答.准备去吃饭了.吼吼`~