>そもそも*ptr[3]という式の結合順位が紛らわしいという話と、

int *ptr1[n]; これはどうやって結合するんですか?

int
*
ptr1
[n]
;