间接引用与直接引用的区别

如题所述

第1个回答  2019-05-29

1、意义不同:

符号 &(reference),表示".....的地址"("address of"),因此称为地址操作符(adress operator),又称引用操作符(reference operator)。 

符号 *(dereference),表示".....所指向的值"("value pointed to by")。

2、使用方法不同:

直接引用将变量a的地址赋给变量n,因为当在变量名称a前面加ampersand (&) 符号,b指的将不再是该变量的内容,而是它在内存中的地址。

间接引用当调用函数的时候,x和y的值会被复制一份,然后分别赋值给a和b。在函数内部修改a和b的值,并不会对外部的x和y造成影响。

3、优势不同:

直接引用不需要再copy值,提升性能。修改了参数的值也就修改了外部变量的值。使用常量引用,既达到了像值传递那样使用参数,又可以像引用传递那样提升性能。

对于参数是通过间接引用的函数,参数的值会被复制一份传入函数。对于基本类型比如int,这样的开销是很小的。但对于大的复合类型,不如string。

参考资料来源:百度百科-引用调用

相似回答