Wie deklariere ich einen Zeiger auf die Funktion in C?

青灯夜游
Freigeben: 2019-03-11 11:32:17
Original
4803 Leute haben es durchsucht

In C können Sie wie gewöhnliche Datenzeiger (int*, char* usw.) auch Zeiger auf Funktionen, also Funktionszeiger, deklarieren. Wie also deklarieren? Der folgende Artikel zeigt Ihnen, wie Sie Funktionszeiger deklarieren. Ich hoffe, er ist hilfreich für Sie. [Empfehlung für ein Video-Tutorial: C-Sprach-Tutorial]

Wie deklariere ich einen Zeiger auf die Funktion in C?

Wie deklariere ich einen Zeiger auf eine Funktion?

Zuerst verstehen wir, wie man in C einen Zeiger auf eine Ganzzahl erstellt?

int * ptrInteger; / *我们在int和ptrInteger之间放置了一个*运算符来创建指针。* /
Nach dem Login kopieren

Der ptrInteger hier ist ein Zeiger auf eine Ganzzahl. Wenn dies verstanden werden kann, sollten wir logischerweise kein Problem damit haben, Zeiger auf Funktionen zu deklarieren.

Als nächstes werfen wir einen Blick darauf, wie man eine Funktion deklariert. Zum Beispiel:

int foo(int);
Nach dem Login kopieren

wobei foo eine Funktion ist, die einen Parameter vom Typ int zurückgibt und akzeptiert. Logischerweise würde man also annehmen, dass das bloße Einfügen eines *-Operators zwischen int und foo(int) einen Zeiger auf eine Funktion erzeugen sollte, d Wenn hier eine Rolle spielt, hat der Operator () Vorrang vor dem Operator *. Die obige Deklaration bedeutet: Eine Funktion foo, einer der Parameter ist vom Typ int und der Rückgabewert ist int*, was ein ganzzahliger Zeiger ist. Daher müssen wir auch die Priorität des c-Operators berücksichtigen.

Also müssen wir den *-Operator irgendwie mit foo binden. Dazu verwenden wir den Operator (), um die Standardpriorität der C-Operatoren zu ändern. Beispiel: Der Operator

int * foo(int);
Nach dem Login kopieren

* wird mit foo verwendet, und foo ist der Funktionsname, wodurch ein Zeiger auf die Funktion deklariert wird.

Beispiel für die Verwendung eines Funktionszeigers:

int (*foo)(int);
Nach dem Login kopieren
Ausgabe:


Wie deklariere ich einen Zeiger auf die Funktion in C?

Erklärung: 1 Im Gegensatz zu gewöhnlichen Zeigern verweisen Funktionszeiger auf Code, nicht auf Daten. Normalerweise speichert ein Funktionszeiger den Anfang des ausführbaren Codes.

2. Im Gegensatz zu gewöhnlichen Zeigern verwenden wir keine Funktionszeiger zum Zuweisen und Freigeben von Speicher.

3. In Funktionszeigern kann der Name der Funktion auch verwendet werden, um die Adresse der Funktion zu erhalten.

4. Funktionszeiger können wie gewöhnliche Datenzeiger als Parameter übergeben oder von Funktionen zurückgegeben werden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWie deklariere ich einen Zeiger auf die Funktion 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