21xrx.com
2024-11-05 19:42:05 Tuesday
登录
文章检索 我的文章 写文章
C++中传值的三种方式
2023-07-08 21:42:01 深夜i     --     --
C++ 传值 三种方式

在C++中,参数的传递有三种方式:值传递、指针传递和引用传递。每种方式都有其适用的场景,下面依次进行介绍。

1. 值传递(Call by value)

值传递是指将实参的值复制一份给形参。函数中的修改不会影响到原来的实参,因为它们在不同的内存地址中。

示例代码:


#include <iostream>

using namespace std;

void func(int a) {

  a++;

  cout << "In func: " << a << endl;

}

int main() {

  int num = 10;

  func(num);

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

}

输出结果:


In func: 11

In main: 10

2. 指针传递(Call by pointer)

指针传递是指将实参的地址传递给形参,可以在函数中修改传递地址所指的值。通过指针传递可以实现函数间数据共享。

示例代码:


#include <iostream>

using namespace std;

void func(int* p) {

  (*p)++;

  cout << "In func: " << *p << endl;

}

int main() {

  int num = 10;

  int* p = &num;

  func(p);

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

}

输出结果:


In func: 11

In main: 11

3. 引用传递(Call by reference)

引用传递是指将实参的别名传递给形参。函数中的修改会直接影响到原来的实参,因为它们是同一个变量。

示例代码:


#include <iostream>

using namespace std;

void func(int& a) {

  a++;

  cout << "In func: " << a << endl;

}

int main() {

  int num = 10;

  func(num);

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

}

输出结果:


In func: 11

In main: 11

综上所述,值传递、指针传递和引用传递各有优缺点,具体使用时需要根据实际情况进行选择。值传递可以避免函数间数据干扰,指针传递可以实现函数间数据共享,引用传递可以方便地访问和修改原始数据。

  
  

评论区

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