Вместо того, чтобы ссылаться на int[2][3]
как на «2d массив», вы должны рассматривать его как «массив массивов». Это массив с двумя элементами, в котором каждый элемент представляет собой массив с тремя целыми числами.
int (*p)[3] = a;
Вы можете использовать p
, чтобы указать на любой из двух пунктов в a
. p
указывает на массив с тремя целыми числами, а именно на первый такой элемент. p+1
будет указывать на второй массив с тремя целыми числами. Чтобы инициализировать p
для указания на второй элемент, используйте:
int (*p)[3] = &(a[1]);
Ниже приведены эквивалентные способы указания на первый из двух пунктов.
int (*p)[3] = a; // as before
int (*p)[3] = &(a[0]);