您的位置 首页 编程知识

C++ 函数中引用与指针传递的异同点总结

引用传递保存变量引用,改变引用所指变量的值会改变原值,不能为 null,通常效率更高;指针传递保存变量地址,改…

引用传递保存变量引用,改变引用所指变量的值会改变原值,不能为 null,通常效率更高;指针传递保存变量地址,改变指针所指变量的值不会改变原值,可以为 null,通常效率略低。

C++ 函数中引用与指针传递的异同点总结

C++ 函数中引用与指针传递的异同点

引用传递

  • 引用传递通过保存变量的引用来传递变量值。
  • 改变引用所指变量的值会改变原值。
  • 不能将引用设置为 NULL。
  • 通常比指针传递效率更高。

指针传递

立即学习“”;

  • 指针传递通过保存变量地址来传递变量值。
  • 改变指针所指变量的值不会改变原值。
  • 可以将指针设置为 NULL,表示不指向任何变量。
  • 通常比引用传递效率略低。

异同点

特征 引用传递 指针传递
传递方式 传递引用 传递地址
可否改变原值
可否为 NULL
效率 通常更高 通常略低

实战案例

考虑以下函数:

void swap(int& a, int& b) {   int temp = a;   a = b;   b = temp; }
登录后复制

在此函数中,a 和 b 作为引用传递。调用此函数时,它会交换传递给它的两个变量的值。

int main() {   int x = 10;   int y = 20;   swap(x, y);   cout << x << " " << y << endl; // 输出:20 10 }
登录后复制

现在考虑以下函数:

void updatePtr(int* ptr) {   *ptr = 10; }
登录后复制

在此函数中,ptr 作为指针传递。调用此函数时,它会更改传递给它的变量而不是变量本身。

int main() {   int x = 5;   int* ptr = &x;   updatePtr(ptr);   cout << x << endl; // 输出:10 }
登录后复制

以上就是C++ 函数中引用与指针传递的异同点总结的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/2053.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部