21xrx.com
2025-03-21 19:06:02 Friday
文章检索 我的文章 写文章
C++函数调用方式:传值调用、指针调用和引用调用
2023-06-28 13:06:40 深夜i     19     0
C++ 函数调用 传值调用 指针调用 引用调用

在C++中,函数调用是一种重要的机制。在调用函数时,有三种常见的方式:传值调用、指针调用和引用调用。本文将逐一介绍这三种函数调用方式及其使用方法。

1. 传值调用

传值调用是最简单的一种函数调用方式。它指的是在调用函数时,将实参的值复制一份传递给形参,函数内部对形参进行操作,不会影响到实参的值。当函数执行完毕后,形参被销毁,其值随之消失。

下面是一个示例代码:

#include <iostream>
using namespace std;
void func(int num) {
  num *= 2;
  cout << "函数内部num的值为:" << num << endl;
}
int main() {
  int num = 10;
  cout << "调用函数前num的值为:" << num << endl;
  func(num);
  cout << "调用函数后num的值为:" << num << endl;
  return 0;
}

输出结果为:

调用函数前num的值为:10
函数内部num的值为:20
调用函数后num的值为:10

从上面的结果中可以看出,函数内部对形参的修改并没有影响到实参的值。

2. 指针调用

指针调用是通过指针传递实参的地址来实现函数调用的。函数内部对指针所指向的地址进行操作,可以改变实参的值。在函数执行完毕后,形参的值同样会被销毁。

下面是一个示例代码:

#include <iostream>
using namespace std;
void func(int* p) {
  *p *= 2;
  cout << "函数内部*p的值为:" << *p << endl;
}
int main() {
  int num = 10;
  cout << "调用函数前num的值为:" << num << endl;
  func(&num);
  cout << "调用函数后num的值为:" << num << endl;
  return 0;
}

输出结果为:

调用函数前num的值为:10
函数内部*p的值为:20
调用函数后num的值为:20

3. 引用调用

引用调用是将实参的别名传递给形参,形参与实参指向同一块内存区域。函数内部对形参进行操作,可以改变实参的值。在函数执行完毕后,形参的值不会被销毁。

下面是一个示例代码:

#include <iostream>
using namespace std;
void func(int& num) {
  num *= 2;
  cout << "函数内部num的值为:" << num << endl;
}
int main() {
  int num = 10;
  cout << "调用函数前num的值为:" << num << endl;
  func(num);
  cout << "调用函数后num的值为:" << num << endl;
  return 0;
}

输出结果为:

调用函数前num的值为:10
函数内部num的值为:20
调用函数后num的值为:20

从上面的结果可以看出,引用调用是最简洁有效的一种函数调用方式。同时,引用调用也是C++中常用的函数调用方式,特别是在STL等库函数中经常使用到。

  
  

评论区