oop - 值参数和引用参数的区别?

标签 oop reference parameters

值参数和引用参数的区别?这个问题是面试官在我面试的时候问的。有人能告诉我用例子很容易解释的确切区别吗?并且引用参数和指针参数是一回事吗?

谢谢

最佳答案

调用者看不到对值参数的更改(也称为“按值传递”)。

调用者可以看到对引用参数的更改(“通过引用传递”)。

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).

指针的一种用途是在不使用特殊引用概念的情况下实现“引用”参数,某些语言(例如 C)没有这种概念。 (当然,您也可以将指针本身视为值。)

关于oop - 值参数和引用参数的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2207179/

相关文章:

c++ - 使用派生类的成员函数启动线程

c++ - 如何在我的 C++ 代码中避免 dynamic_cast?

c# - MSBuild 命令行 - 添加 dll 引用

.htaccess - PHP - Htaccess - 在 1 个掩码中比较两个 URL,禁用一个

c# - 传递作为参数传入的谓词

language-agnostic - 流畅的接口(interface) - 方法链

javascript - 如何更改 "animal"的原型(prototype)并添加方法 "sayName"到打印语句

c++ - 为什么使用运算符 = 进行引用可以,但使用构造函数则不行?

reference - 在 Notepad++ 中添加对 CS 脚本的引用

typescript :至少需要一个参数时使用扩展运算符