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

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

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

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

引用传递

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

指针传递

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

指针传递通过保存变量地址来传递变量值。改变指针所指变量的值不会改变原值。可以将指针设置为 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++ 函数中引用与指针传递的异同点总结的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 11:48:16
下一篇 2025年12月18日 11:48:29

相关推荐

发表回复

登录后才能评论
关注微信