C++ Aufruf per Zeiger
Die Methode der Argumentübergabe an eine Funktion,Aufruf per Zeiger, kopiert die Adresse des Arguments in den formalen Parameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das im Aufruf benötigte tatsächliche Argument zuzugreifen. Das bedeutet, dass eine Änderung des formalen Parameters das tatsächliche Argument beeinflusst.
Übergabe per Zeiger bedeutet, dass der Argumentzeiger an die Funktion übergeben wird, genau wie andere Werte an eine Funktion übergeben werden. Dementsprechend müssen Sie in der folgenden Funktionswap()den Funktionsparameter als Zeigertyp deklarieren; diese Funktion wird verwendet, um die Werte der beiden Integer-Variablen, auf die die Parameter zeigen, zu vertauschen.
// 函数定义
void swap(int *x, int *y)
{
int temp;
temp = *x; /* 保存地址 x 的值 */
*x = *y; /* 把 y 赋值给 x */
*y = temp; /* 把 x 赋值给 y */
return;
}
Weitere Details zu Zeigern in C++ finden Sie imC++-Zeiger-Kapitel.
Rufen wir nun die Funktion auf, indem wir Werte über Zeiger übergeben.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;
}
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 200 交换后,b 的值: 100Weitere Erweiterungen