Я запутался насчет [dcl.array] / 1 :
В объявлении TD, где D имеет вид
D1 [ константа-выражение опт ] атрибут-спецификатор-секв опт
и тип идентификатора в объявлении T D1равно « производный-декларатор-список-типов Т», тогда тип идентификатора D является типом массива;...
Рассмотрим объявление:
int (*p)[42];
Это объявление удовлетворяет грамматике, описанной выше (и не удовлетворяет грамматике, описанной в предыдущих параграфах), поэтому этот параграф должен применятьсяТаким образом, мы заключаем, что тип p
является типом массива.Однако мы знаем, что тип p
равен pointer to array of 42 int
, который является типом указателя.
Я что-то упустил?Или pointer to array of 42 int
действительно является типом массива?