21xrx.com
2024-12-23 02:44:15 Monday
登录
文章检索 我的文章 写文章
C++中三种传递方式的交换函数实现
2023-07-05 07:46:50 深夜i     --     --
C++ 传递方式 交换函数

C++中有三种传递方式:传值、传引用、传指针。这篇文章将介绍如何使用这三种传递方式实现一个交换函数。

1. 传值方式

在传递值的方式中,函数会把参数的值复制一份,然后在函数内部操作这个副本。在交换函数中,我们需要把两个变量的值进行交换。先看代码:


void swap_by_value(int a, int b)

  int tmp = a;

  a = b;

  b = tmp;

这个函数需要传入两个参数,然后把它们的值进行交换。但是这个函数是无效的,因为它只是在函数内部交换了值副本,原变量的值没有改变。在调用这个函数的时候,需要传入变量的地址,才能达到交换变量的目的。

2. 传引用方式

传引用方式指的是传递变量的地址,函数接收到变量的指针后,可以直接对变量进行操作,从而达到改变变量的值的目的。改写一下上面无效的函数:


void swap_by_reference(int &a, int &b)

  int tmp = a;

  a = b;

  b = tmp;

这个函数把参数改成了引用类型,函数内部直接对变量进行操作,而不是对值的副本进行操作。这个函数可以正确交换两个变量的值,因为引用参数是指向变量实际内存位置的指针,操作这个指针就可以操作变量本身。在函数调用的时候,需要传入变量的地址。

3. 传指针方式

传指针方式也是传递变量的地址,但是它使用的是指针类型,而不是引用类型。改写一下上面的交换函数:


void swap_by_pointer(int *a, int *b){

  int tmp = *a;

  *a = *b;

  *b = tmp;

}

这个函数里面接收的是两个指针变量,函数内部操作的是指针所指的地址,也就是变量的内存地址。在函数调用的时候,需要传入变量的地址,也就是指针变量。

总结

C++中有三种传递方式:传值、传引用、传指针。这三种方式都可以用来实现交换函数,但是要注意参数类型和处理方式的区别。传值方式要注意无法改变变量的值,需要用到引用或指针。在使用引用和指针的时候,需要注意空指针的异常情况。传引用方式可以直接对变量进行操作,而传指针方式需要通过指针间接访问变量。使用不同的传递方式,可以根据实际情况选择最优的方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复