Es gibt kein Limit, siehe Beispiel unter Zeiger :: C Interview Fragen und Antworten .
Die Antwort hängt davon ab, was Sie mit "Ebenen von Zeigern" meinen. Wenn Sie meinen: "Wie viele Ebenen der Indirektion können Sie in einer einzigen Deklaration haben?", lautet die Antwort: "Mindestens 12."
int i = 0;
int *ip01 = & i;
int **ip02 = & ip01;
int ***ip03 = & ip02;
int ****ip04 = & ip03;
int *****ip05 = & ip04;
int ******ip06 = & ip05;
int *******ip07 = & ip06;
int ********ip08 = & ip07;
int *********ip09 = & ip08;
int **********ip10 = & ip09;
int ***********ip11 = & ip10;
int ************ip12 = & ip11;
************ip12 = 1; /* i = 1 */
Wenn Sie meinen, wie viele Zeigerebenen Sie verwenden können, bevor das Programm unübersichtlich wird, ist das Geschmackssache, aber es gibt eine Grenze. Zwei Ebenen der Umleitung (ein Zeiger auf einen Zeiger auf etwas) sind üblich. Mehr als das wird ein bisschen schwieriger zu denken; tun Sie es nicht, es sei denn, die Alternative wäre schlimmer.
Wenn Sie meinen: "Wie viele Ebenen der Zeigerumlenkung können Sie zur Laufzeit haben", gibt es keine Grenze. Dieser Punkt ist besonders wichtig für kreisförmige Listen, in denen jeder Knoten auf den nächsten zeigt. Ihr Programm kann den Zeigern ewig folgen.