C++ 函数指针调用
将参数传递给函数的指针调用方法会将参数的地址复制到形参中。在函数内部,该地址用于访问调用中使用的实际参数。这意味着对形参的更改会影响传递的参数。
要通过指针传递值,参数指针会像任何其他值一样传递给函数。因此,您需要将函数参数声明为指针类型,如以下函数swap()所示,该函数交换其参数指向的两个整型变量的值。
// 函数定义用于交换值。
void swap(int *x, int *y) {
int temp;
temp = *x; /* 将值保存在地址 x */
*x = *y; /* 将 y 放入 x */
*y = temp; /* 将 x 放入 y */
return;
}
要了解有关 C++ 指针的更多详细信息,请参阅 C++ 指针 章节。
现在,让我们通过指针传递值来调用函数 swap(),如下例所示 -
#include <iostream>
using namespace std;
// 函数声明
void swap(int *x, int *y);
int main () {
// 局部变量声明:
int a = 100;
int b = 200;
cout << "交换之前,a 的值:" << a << endl;
cout << "交换之前, b 的值:" << b << endl;
/* 调用函数交换值。
* &a 表示指向 a 的指针,即变量 a 的地址。
* &b 表示指向 b 的指针,即变量 b 的地址。
*/
swap(&a, &b);
cout << "交换后,a 的值:" << a << endl;
cout << "交换后,b的值:" << b << endl;
return 0;
}
当将上述代码放在一个文件中、进行编译和执行时,它会产生以下结果 -
交换之前,a 的值:100 交换之前, b 的值:200 交换后,a 的值:200 交换后,b的值:100

cpp_functions.html