Suche
Suche Menü

Zeiger auf Funktionen

Zeiger können nicht nur auf Variablen gesetzt werden, sondern auch auf Funktionen. Somit kann das Programm-Verhalten zur Laufzeit noch dynamischer gestaltet werden. Im folgenden Beispiel wird ein Funktionszeiger namens rechne erstellt, welcher im Parameter eine int Zahl empfängt und als Rückgabe eine long int Zahl liefert. Dieser Zeiger wird zuerst auf eine Funktion namens hoch2 gesetzt, welche das Quadrat einer Zahl ausrechnet. Danach wird der Zeiger auf eine Funktion namens hoch3 gesetzt.

#include<stdio.h>

long hoch2(int n) {
	return n * n;
}

long hoch3(int n) {
	return n * n * n;
}

int main() {
	long (*rechne) (int);

	int zahl = 3;
	
	rechne = hoch2;
	printf("%d hoch 2: %d\n", zahl, rechne(zahl));

	rechne = hoch3;
	printf("%d hoch 3: %d\n", zahl, rechne(zahl));

	return 0;
}

3 hoch 2: 9
3 hoch 3: 27