C++ 值传递和引用传递的本质区别

c++++ 中值传递引用传递的区别:值传递创建参数副本,不会影响原始变量;引用传递直接操作参数,修改反映在原始变量中。实战案例:交换两个整数值,值传递不会交换,而引用传递会。

C++ 值传递和引用传递的本质区别

C++ 中值传递和引用传递的本质区别

在 C++ 中,当传递函数参数时,有两个主要选择:值传递和引用传递。这两种传递方式之间的基本区别在于,值传递会创建参数的副本,而引用传递会直接操作传递的参数。

值传递

立即学习“C++免费学习笔记(深入)”;

在值传递中,将参数值的副本传递给函数。这意味着函数在传递的参数的副本上进行任何修改,都不会影响原始变量。

void PrintValue(int num) {  num++;}int main() {  int x = 5;  PrintValue(x);  // 传递 x 的副本  cout << x;  // 输出 5,因为原始值不受影响}

引用传递

在引用传递中,将传递给函数的参数的引用传递给函数。这意味着函数直接操作传递的参数,任何修改都将反映在原始变量中。

void PrintReference(int& num) {  num++;}int main() {  int x = 5;  PrintReference(x);  // 传递 x 的引用  cout << x;  // 输出 6,因为原始值已被修改}

实战案例

举个实战案例来说明值传递和引用传递的区别:交换两个整数的值:

值传递:

// 值传递不会交换原始变量的值void SwapValues(int a, int b) {  int temp = a;  a = b;  b = temp;}int main() {  int x = 5, y = 10;  SwapValues(x, y);  cout << x << " " << y;  // 输出 5 10,原始值没有交换}

引用传递:

// 引用传递交换原始变量的值void SwapReferences(int& a, int& b) {  int temp = a;  a = b;  b = temp;}int main() {  int x = 5, y = 10;  SwapReferences(x, y);  cout << x << " " << y;  // 输出 10 5,原始值已交换}

以上就是C++ 值传递和引用传递的本质区别的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1446912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 00:03:03
下一篇 2025年12月18日 00:03:13

相关推荐

发表回复

登录后才能评论
关注微信