21xrx.com
2024-11-22 09:34:58 Friday
登录
文章检索 我的文章 写文章
C++中如何传递参数
2023-06-22 08:16:23 深夜i     --     --
C++ 参数传递 引用 指针 值传递

在C++中,函数的参数传递可以分为值传递、引用传递和指针传递三种方式。

1. 值传递

值传递是指在函数调用过程中,将实参的值传递给形参。在函数内部,形参是实参的一个副本,对形参的修改不会影响实参。值传递适用于实参为基本数据类型或小型结构体等情况。

以下为示例代码:


#include <iostream>

using namespace std;

void func(int num) {

  num++;

  cout << "num in function: " << num << endl;

}

int main() {

  int num = 10;

  func(num);

  cout << "num in main: " << num << endl;

  return 0;

}

输出结果为:


num in function: 11

num in main: 10

可以看出,在函数调用过程中,num的值传递给了形参,形参的改变不会影响到实参num。

2. 引用传递

引用传递是指在函数调用过程中,将实参的地址传递给形参,形参成为实参的一个别名。在函数内部,对形参的修改会直接影响实参。引用传递适用于实参为大型结构体或类等情况。

以下为示例代码:


#include <iostream>

using namespace std;

void func(int& num) {

  num++;

  cout << "num in function: " << num << endl;

}

int main() {

  int num = 10;

  func(num);

  cout << "num in main: " << num << endl;

  return 0;

}

输出结果为:


num in function: 11

num in main: 11

可以看出,在函数调用过程中,num的地址传递给了形参,形参的改变直接影响实参num。

3. 指针传递

指针传递是指在函数调用过程中,将实参指针的值传递给形参指针,形参和实参指向同一块内存。在函数内部,对形参的修改会直接影响实参。指针传递适用于实参为数组、字符串等情况。

以下为示例代码:


#include <iostream>

using namespace std;

void func(int* num) {

  (*num)++;

  cout << "num in function: " << (*num) << endl;

}

int main() {

  int num = 10;

  func(&num);

  cout << "num in main: " << num << endl;

  return 0;

}

输出结果为:


num in function: 11

num in main: 11

可以看出,在函数调用过程中,num的地址传递给了形参指针,形参指针和实参指针指向同一块内存,形参指针的改变直接影响实参num。

综上所述,根据实际需求情况选择不同的参数传递方式即可。

  
  

评论区

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