21xrx.com
2024-11-05 17:33:27 Tuesday
登录
文章检索 我的文章 写文章
C++函数调用方式:传值调用、指针调用和引用调用
2023-06-28 13:06:40 深夜i     --     --
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等库函数中经常使用到。

  
  

评论区

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