我遇到了两个难以理解的指针声明。我对优先规则的理解是这样的:
Operator Precedence Associativity
(), [ ] 1 Left to Right
*, identifier 2 Right to Left
Data type 3
但是即使这样,我似乎也无法弄清楚如何正确评估以下示例:
第一个例子
float * (* (*ptr)(int))(double **,char c)
我的评价:
*(ptr)
(int)
*(*ptr)(int)
*(*(*ptr)(int))
然后,
double **
char c
第二个例子
unsigned **( * (*ptr) [5] ) (char const *,int *)
*(ptr)
[5]
*(*ptr)[5]
*(*(*ptr)[5])
**(*(*ptr)[5])
我应该如何阅读它们?