Saya telah menemukan dua deklarasi pointer yang saya mengalami kesulitan memahami. Pemahaman saya tentang aturan diutamakan berjalan seperti ini:
Operator Precedence Associativity
(), [ ] 1 Left to Right
*, identifier 2 Right to Left
Data type 3
Tetapi meskipun diberi ini, saya sepertinya tidak tahu cara mengevaluasi contoh-contoh berikut dengan benar:
Contoh pertama
float * (* (*ptr)(int))(double **,char c)
Evaluasi saya:
*(ptr)(int)*(*ptr)(int)*(*(*ptr)(int))
Kemudian,
double **char c
Contoh kedua
unsigned **( * (*ptr) [5] ) (char const *,int *)
*(ptr)[5]*(*ptr)[5]*(*(*ptr)[5])**(*(*ptr)[5])
Bagaimana saya harus membacanya?