Heim > Backend-Entwicklung > C++ > Hauptteil

Wie funktionieren Funktionszeiger in C++?

PHPz
Freigeben: 2024-06-04 17:37:10
Original
824 Leute haben es durchsucht

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);
Nach dem Login kopieren

Zuweisung

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

FunctionPointer fp = &myFunction;
Nach dem Login kopieren

Call

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

fp(10);
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!