J'ai rencontré deux déclarations de pointeur que j'ai du mal à comprendre. Ma compréhension des règles de priorité va quelque chose comme ceci:
Operator Precedence Associativity
(), [ ] 1 Left to Right
*, identifier 2 Right to Left
Data type 3
Mais même avec cela, je n'arrive pas à comprendre comment évaluer correctement les exemples suivants:
Premier exemple
float * (* (*ptr)(int))(double **,char c)
Mon évaluation:
*(ptr)(int)*(*ptr)(int)*(*(*ptr)(int))
Alors,
double **char c
Deuxième exemple
unsigned **( * (*ptr) [5] ) (char const *,int *)
*(ptr)[5]*(*ptr)[5]*(*(*ptr)[5])**(*(*ptr)[5])
Comment dois- je les lire?