Полагаю, второе заявление сбивает с толку многих. Вот простой способ понять это.
Позволяет иметь массив целых чисел, т.е. int B[8]
.
Давайте также будем иметь переменную A, которая указывает на B. Теперь значение в A - это B, т.е. (*A) == B
. Следовательно, A указывает на массив целых чисел. В вашем вопросе arr похож на A.
Аналогично, в int* (*C) [8]
, C - указатель на массив указателей на целое число.