#include <stdio.h>
int main() {
typedef int T;
T a[] = { 1, 2, 3, 4, 5, 6 };
T(*pa1)[6] = (T(*)[6])a;
T(*pa2)[3][2] = (T(*)[3][2])a;
T(*pa3)[1][2][3] = (T(*)[1][2][3])a;
T *p = a;
T *p1 = *pa1;
T *p2 = **pa2;
T *p3 = ***pa3;
printf("%p %p %p %p %p %p %p\n", a
, pa1
, pa2
, pa3
, p
, p1
, p2
, p3
); printf("%d %d %d %d %d %d %d\n", a
[5], (*pa1
)[5], (*pa2)[2][1], (*pa3)[0][1][2], p[5], p1[5], p2[5], p3[5]);
return 0;
}
ICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgaW50IG1haW4oKSB7CiAgICAgdHlwZWRlZiBpbnQgVDsKICAgICBUIGFbXSA9IHsgMSwgMiwgMywgNCwgNSwgNiB9OwogICAgIFQoKnBhMSlbNl0gPSAoVCgqKVs2XSlhOwogICAgIFQoKnBhMilbM11bMl0gPSAoVCgqKVszXVsyXSlhOwogICAgIFQoKnBhMylbMV1bMl1bM10gPSAoVCgqKVsxXVsyXVszXSlhOwogICAgIFQgKnAgPSBhOwogICAgIFQgKnAxID0gKnBhMTsKICAgICBUICpwMiA9ICoqcGEyOwogICAgIFQgKnAzID0gKioqcGEzOwogICAgIHByaW50ZigiJXAgJXAgJXAgJXAgJXAgJXAgJXBcbiIsIGEsIHBhMSwgcGEyLCBwYTMsIHAsIHAxLCBwMiwgcDMpOwogICAgIHByaW50ZigiJWQgJWQgJWQgJWQgJWQgJWQgJWRcbiIsIGFbNV0sICgqcGExKVs1XSwgCiAgICAgICAoKnBhMilbMl1bMV0sICgqcGEzKVswXVsxXVsyXSwgcFs1XSwgcDFbNV0sIHAyWzVdLCBwM1s1XSk7CiAgICAgcmV0dXJuIDA7CiAgICB9Cg==