21xrx.com
2024-11-22 05:50:19 Friday
登录
文章检索 我的文章 写文章
C++中传递参数的几种方式是什么?
2023-06-28 02:48:20 深夜i     --     --
值传递 引用传递 指针传递

C++ 作为一门强大的编程语言,允许程序员在函数调用过程中传递参数并实现相关的操作,从而增强了程序的灵活性和可拓展性。在 C++ 中,传递参数的几种方式主要包括值传递、指针传递和引用传递。

1. 值传递

值传递是最常见的参数传递方式。它指的是把参数的值复制一份传递给函数,函数使用这个参数时只是使用该值的副本,不影响原始参数的值。因此,函数内部对该参数的任何修改不会影响到调用它的函数。

例如,下面这段代码演示了值传递的使用:


#include <iostream>

using namespace std;

void value_transfer(int a)

  a = 10;

  cout << "Inside function

int main() {

  int num = 5;

  value_transfer(num);

  cout << "Outside function, the value of num is " << num << endl;

  return 0;

}

输出结果为:


Inside function, the value of a is 10

Outside function, the value of num is 5

可以看到,在执行 `value_transfer` 函数时,传入的参数 `num` 被复制一份,即使在函数内部将其修改为 10,调用函数的主函数中的 `num` 仍保持不变。

2. 指针传递

使用指针传递时,函数的参数是一个指针(用于存储内存地址),指向实际数据的地址。这样,在函数中就可以直接读取或修改指针所指向的数据,从而实现对原始参数的修改。

例如,通过下面这个函数将两个数交换:


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

  int temp = *a;

  *a = *b;

  *b = temp;

}

int main() {

  int x = 10;

  int y = 20;

  swap(&x, &y);

  cout << "x = " << x << " , y = " << y << endl;

  return 0;

}

输出结果为:


x = 20 , y = 10

可以看到,函数内部通过指针直接修改了主函数中的变量值,实现了数据交换的操作。

3. 引用传递

引用传递和指针传递类似,参数类型是变量的引用,而不是指向该变量的指针。它可以使函数读取或修改原始参数的值,不同之处在于,引用不需要使用取地址符 & 来标识内存地址,而且更加容易使用。

例如,用引用传递来重新编写上面的交换函数:


void swap(int &a, int &b)

  int temp = *a;

  *a = *b;

  *b = temp;

int main() {

  int x = 10;

  int y = 20;

  swap(x, y);

  cout << "x = " << x << " , y = " << y << endl;

  return 0;

}

输出结果为:


x = 20 , y = 10

可以看到,输出结果与指针传递的一样,函数内部通过引用直接修改了主函数中的变量值。

熟练掌握这三种参数传递方式,在程序开发中可以更加灵活地设计和使用函数,实现需要的操作。

  
  

评论区

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