, [], () *,
T *a[N]; -- a is an N-element array of pointer to T
T (*a)[N]; -- a is a pointer to an N-element array of T
T *f(); -- f is a function returning pointer to T
T (*f)(); -- f is a pointer to a function returning T
( , 5- ., B):
declarator:
pointer-declarator
direct-declarator
pointer-declarator:
pointer direct-declarator
pointer:
* type-qualifier-listopt
* type-qualifier-listopt pointer
direct-declarator:
simple-declarator
( declarator )
function-declarator
array-declarator
function-declarator:
direct-declarator ( parameter-type-list )
direct-declarator ( identifier-listopt )
array-declarator:
direct-declarator [ constant-expressionopt ]
direct-declarator [ array-qualifier-listopt array-size-expressionopt ]
direct-declarator [ array-qualifier-listopt * ]