Почему при выводе типа для массивов указатель указывается первым, а не над массивом?

int v[1];
auto  p1 = v;
auto &p2 = v;
auto *p3 = v;

p1 имеет типint * (то же самое дляp3). Особенно в этом тривиальном образце я нахожуp2 ( int (&)[1] ) более полезно, поскольку оно наследует семантику массива, например Я могу подать заявкуsizeof наp2 дать так же, какsizeof наv.

Есть ли стандартная цитата по этому поводу?

Почему по умолчанию ссылки - плохая идея? (в данном случае я имею в виду, что в наши дни программист на c ++ почти не заботится о них ...)