C++ 函数调用的参数传递方式

c++++ 函数的参数传递方式有三种:按值传递(传递参数的副本),按引用传递(传递参数的引用),按指针传递(传递参数的指针),按引用传递能直接修改原始变量,按指针传递也一样,按值传递则不能。

C++ 函数调用的参数传递方式

C++ 函数调用的参数传递方式

在 C++ 中,函数可以接收参数来执行特定任务。传递给函数的参数可以采用不同的方式传递,每种方式都有其优缺点。

按值传递

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

在按值传递中,函数接收参数副本的副本。对参数副本所做的任何修改都只影响副本,不影响原始变量。

void swap(int a, int b) {  int temp = a;  a = b;  b = temp;}int main() {  int x = 10, y = 20;  swap(x, y); // 传递副本  cout << "x = " << x << ", y = " << y << endl; // 输出:x = 10, y = 20  return 0;}

按引用传递

在按引用传递中,函数直接接收对函数参数的引用。对引用所做的任何修改都会直接反映到原始变量上。

void swap(int& a, int& b) {  int temp = a;  a = b;  b = temp;}int main() {  int x = 10, y = 20;  swap(x, y); // 传递引用  cout << "x = " << x << ", y = " << y << endl; // 输出:x = 20, y = 10  return 0;}

按指针传递

在按指针传递中,函数接收参数的指针。对指针指向数据的修改会直接反映到原始变量上。

void swap(int* a, int* b) {  int temp = *a;  *a = *b;  *b = temp;}int main() {  int x = 10, y = 20;  swap(&x, &y); // 传递指针  cout << "x = " << x << ", y = " << y << endl; // 输出:x = 20, y = 10  return 0;}

实战案例

使用按引用传递来交换两个链表中的元素:

struct Node {  int data;  Node* next;};void swap(Node*& a, Node*& b) {  Node* temp = a;  a = b;  b = temp;}int main() {  // 创建两个带有数据的链表  Node* head1 = new Node{1, nullptr};  head1->next = new Node{2, nullptr};  Node* head2 = new Node{3, nullptr};  head2->next = new Node{4, nullptr};  // 交换两个链表头部的引用  swap(head1, head2);  // 输出交换后的链表  Node* curr = head1;  while (curr != nullptr) {    cout <data <next;  }  cout << endl;  curr = head2;  while (curr != nullptr) {    cout <data <next;  }  cout << endl;  return 0;}

以上就是C++ 函数调用的参数传递方式的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 10:52:38
下一篇 2025年12月18日 10:52:50

相关推荐

发表回复

登录后才能评论
关注微信