Вот что я прочитал по адресу:
5.2.1 Подписка [expr.sub]
1 Постфиксное выражение, за которым следует квадратное выражениескобки - это постфиксное выражение.Одно из выражений должно иметь тип «указатель на T», а другое должно иметь перечисление или целочисленный тип.Результатом является lvalue типа «T». Тип «T» должен быть полностью определенным типом объекта.61) Выражение E1 [E2] идентично (по определению) * ((E1) + (E2))[Примечание: см. 5.3 и 5.7 для деталей * и + и 8.3.4 для деталей массивов.- конец примечания]
-C ++ Draft.
int a = 10, b = 20;
int &c[] = {a, b};
Итак, представьте, что &c[0]
будет чем-то как *&(c+0)
, ссылки IMHO похожи на псевдонимы,Следовательно, исходя из понятия «массивы», он будет пытаться разыменовать значение, содержащееся в ссылке, которая не нужна.