引用的本质:
这里面y,a都是x的引用,p指向的也是x的地址。
右图为引用的本质
引用和指针的区别:
从语法角度上看,引用就是一个变量的别名。
从底层上看,引用实质上是常性指针。
1.以引用返回:在函数将返回值存到将亡值中后,函数执行完毕,函数里所有开辟的空间就会被系统回收,这时b接受到的地址是一个已经不存在的地址。但是因为空间还没有被扰动,所以仍旧可以得到正确的值,但我们不这么用。
2..以引用接收d,d获得的是返回的地址,但这时空间可能被扰动,也可能没被扰动,所以得到的是一个随机值。
3.以值返回:而a接受到的直接就是值,所以是正确的。
所以我们不允许对局部变量进行引用返回,因为引用返回时返回的实际上是地址,而地址被系统回收后就不存在了。
而全局变量,静态局部变量,以引用作为形参的变量可以引用返回。