Ich habe zwei Zeigererklärungen gefunden, bei denen ich Probleme mit dem Verständnis habe. Mein Verständnis der Vorrangregeln sieht ungefähr so aus:
Operator Precedence Associativity
(), [ ] 1 Left to Right
*, identifier 2 Right to Left
Data type 3
Aber trotz alledem kann ich nicht herausfinden, wie man die folgenden Beispiele richtig bewertet:
Erstes Beispiel
float * (* (*ptr)(int))(double **,char c)
Meine Bewertung:
*(ptr)(int)*(*ptr)(int)*(*(*ptr)(int))
Dann,
double **char c
Zweites Beispiel
unsigned **( * (*ptr) [5] ) (char const *,int *)
*(ptr)[5]*(*ptr)[5]*(*(*ptr)[5])**(*(*ptr)[5])
Wie soll ich sie lesen?