Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktionieren Funktionszeiger in C++?

Wie funktionieren Funktionszeiger in C++?

PHPz
PHPzOriginal
2024-06-04 17:37:10835Durchsuche

In C++ ist ein Funktionszeiger eine Variable, die auf eine Funktion zeigt, die die Funktion dynamisch als Parameter übergeben oder speichern kann. Die Syntax lautet: Typname * Funktionsname. Verwenden Sie beim Zuweisen die Funktionszeigeradresse und dereferenzieren Sie sie beim Aufruf. Wenn Sie beispielsweise den Maximalwert mithilfe eines Funktionszeigers berechnen, erfolgt die Berechnung durch Zuweisen und Aufrufen des Funktionszeigers.

函数指针在 C++ 中如何工作?

So funktionieren Funktionszeiger in C++

In C++ ist ein Funktionszeiger eine Variable, die auf eine Funktion zeigt. Es ermöglicht uns, Funktionen dynamisch als Parameter zu übergeben oder in Datenstrukturen zu speichern.

Syntax

Ein Funktionszeiger wird wie eine reguläre Funktion deklariert, aber auf den Typnamen folgt ein Sternchen (*):

typedef void (*FunctionPointer)(int);

Zuweisung

Wir können einem Funktionszeiger wie einem normalen Zeiger eine Funktionsadresse zuweisen:

FunctionPointer fp = &myFunction;

Call

Wir können es aufrufen, indem wir einen Funktionszeiger dereferenzieren:

fp(10);

Praktisches Beispiel

Betrachten wir ein Programm, das einen Funktionszeiger verwendet, um das Maximum von zwei Zahlen zu berechnen:

#include <iostream>

using namespace std;

// 最大值函数
int max(int a, int b) {
  return a > b ? a : b;
}

// 函数指针比较函数
int compare(int a, int b, int (*fp)(int, int)) {
  return fp(a, b);
}

int main() {
  // 分配函数指针并调用它来计算两数的最大值
  int (*fp)(int, int) = &max;
  int result = compare(5, 10, fp);

  // 打印结果
  cout << "最大值:" << result << endl;

  return 0;
}

Das obige ist der detaillierte Inhalt vonWie funktionieren Funktionszeiger in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn