私は理解に苦労している2つのポインタ宣言に遭遇しました。優先ルールの私の理解は次のようになります。
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
2番目の例
unsigned **( * (*ptr) [5] ) (char const *,int *)
*(ptr)
[5]
*(*ptr)[5]
*(*(*ptr)[5])
**(*(*ptr)[5])
それらをどのように読むべきですか?