引用的本质是一个指针常量:int* const p;
int
a
= 10;
int
&
b
=
a
;
引用是在定义已经有的变量的别名(b),不要去想它是个指针,对它进行的一起切操作,
就完全理解成是对已有变量(a)的操作;因为b是引用,所以不能对它取*p,eg:
cout
<<
"*b的值:"
<< *
b
<<
endl
;是不对的
问题:&b是在求a的地址,我怎么样才能取到引用b的地址呢??
&(&a)和&(&b)都是不对的,不能编译;
答:引用是没有地址的,指针有地址;引用就是给同类型的变量起别名,不占存储空间;
它和原变量实质就是同一个变量;
但是
在结构体中允许定义未初始化的引用,占4个字节,这像指针,在这种情况下如果要使用结构体内的引用,
实则和引用做函数参数是一个道理了。