Nav*_*eed 5 oop parameters reference
值参数和参考参数之间的差异?在我的采访中,访谈员有时会问这个问题.有人可以告诉我一个容易用例子解释的确切区别吗?并且参考参数和指针参数是一样的吗?
谢谢
小智 14
调用者看不到对值参数的更改(也称为"按值传递").
调用者可以看到对参考参数的更改("按引用传递").
C++示例:
void by_value(int n) { n = 42; }
void by_ref(int& n) { n = 42; }
void also_value(int const& n); // Even though a reference is used, this is
// semantically a value parameter---though there are implementation
// artifacts, like not being able to write "n = 42" (it's const) and object
// identity (&n here has different ramifications than for by_value above).
Run Code Online (Sandbox Code Playgroud)
指针的一个用途是实现"引用"参数,而不使用特殊的引用概念,某些语言(如C)没有.(当然,您也可以将指针视为值本身.)
主要区别在于是否复制了传递的对象.如果它是一个值参数,编译器必须生成这样的代码,改变函数内部的函数参数对传递的原始对象没有影响,因此它通常会复制该对象.在参考参数的情况下,编译器必须生成这样的代码,所有操作都在传递的原始对象上完成.
| 归档时间: |
|
| 查看次数: |
26839 次 |
| 最近记录: |