Reference
三种变量
值 ->
value
指针 ->
pointer
引用 ->
reference
&
取址符
示例代码:
注意:
在编译器层面会有这样的表示方式:
sizeof(r) == sizeof(x);
// 因为r代表x.所以x如果是100个字节那么r也是一百个字节
&x == &r; // 因为r代表了x所以r在那里x在那里 -> 地址相同
java
当中所有的变量都是reference
reference
通常不用于声明变量.主要用于形参和返回值的描述
reference
的声明更多的是从被调用端来看的
示例代码:
调用端代码:
总结:
针对func_two
和func_three
只有一个地方不同.调用方式和传递参数是一致的.并且func_three
速度还会更快
same signature
示例代码:
void imag(Ref obj) { obj.a; }
void imag(Ref& obj) { obj.a; }
这里涉及到了函数重载.因为是同名函数.函数签名部分是函数名称到第一个{
之前的部分,会出现歧义.所以这两个函数不能共存
It's a lonely road!!!