21xrx.com
2024-11-05 16:37:21 Tuesday
登录
文章检索 我的文章 写文章
C++ 参数传递方法与实例
2023-07-04 15:43:38 深夜i     --     --
C++ 参数传递方式 值传递 引用传递 指针传递 实例 函数传递引用和指针 实例

C++是一门强大的编程语言,支持多种参数传递方法,包括值传递、指针传递和引用传递。本文将介绍这三种参数传递方法,并且提供相应的实例加以说明。

1. 值传递

值传递意味着当函数调用时,实参的值会被复制给形参。在函数内部,形参与实参是完全独立的,改变形参的值并不会影响实参的值。以下是一个值传递的实例:


#include <iostream>

using namespace std;

void swap(int x, int y)

  int temp = x;

  x = y;

  y = temp;

int main() {

  int a = 5, b = 10;

  swap(a, b);

  cout << "a = " << a << ", b = " << b << endl; // a = 5, b = 10

  return 0;

}

在上面的例子中,我们调用了swap函数,并传递了两个变量a和b作为实参。在swap函数内部,我们定义了两个形参,即x和y。我们把x的值赋给了一个临时变量temp,然后将y的值赋给x,最后将temp的值赋给y。尽管swap函数内部的逻辑是正确的,但结果并没有如我们所预期。这是因为我们使用了值传递,而函数内部对形参的操作并不会影响实参的值。

2. 指针传递

指针传递意味着当函数调用时,实参的地址会被传递给形参。在函数内部,我们可以通过形参的地址访问实参的值,并且可以改变实参的值。以下是一个指针传递的实例:


#include <iostream>

using namespace std;

void swap(int *x, int *y) {

  int temp = *x;

  *x = *y;

  *y = temp;

}

int main() {

  int a = 5, b = 10;

  swap(&a, &b);

  cout << "a = " << a << ", b = " << b << endl; // a = 10, b = 5

  return 0;

}

在上面的例子中,我们仍然调用了swap函数,并传递了两个变量a和b作为实参。不同的是,我们使用了指针传递来代替值传递。我们定义了两个形参,即x和y,它们都是指向int类型的指针。在函数内部,我们通过*x和*y访问实参的值,并交换了它们的值。由于我们使用了指针传递,函数内部对形参的操作也改变了实参的值。

3. 引用传递

引用传递与指针传递类似,但是更为简洁和安全。引用传递意味着当函数调用时,实参的别名会被传递给形参。在函数内部,我们可以通过形参的别名访问实参的值,并且可以改变实参的值。以下是一个引用传递的实例:


#include <iostream>

using namespace std;

void swap(int &x, int &y)

  int temp = *x;

  *x = *y;

  *y = temp;

int main() {

  int a = 5, b = 10;

  swap(a, b);

  cout << "a = " << a << ", b = " << b << endl; // a = 10, b = 5

  return 0;

}

在上面的例子中,我们仍然调用了swap函数,并传递了两个变量a和b作为实参。不同的是,我们使用了引用传递来代替指针传递。我们定义了两个形参,即x和y,它们都是int类型的引用。在函数内部,我们通过x和y的别名访问实参的值,并交换了它们的值。

总结:

在C++中,参数传递有三种常用的方法,即值传递、指针传递和引用传递。值传递意味着形参与实参是完全独立的,指针传递和引用传递可以改变实参的值。尤其是引用传递,它更为简洁和安全,推荐优先使用。

  
  

评论区

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