Взять адрес элемента массива «один за другим» через индекс: допустимый по стандарту C ++ или нет?

Я уже неоднократно утверждал, что следующий код не разрешен стандартом C ++:

int array[5];
int *array_begin = &array[0];
int *array_end = &array[5];

Является&array[5] законный код C ++ в этом контексте?

Я хотел бы получить ответ со ссылкой на стандарт, если это возможно.

Также было бы интересно узнать, соответствует ли он стандарту С. И если это не стандартный C ++, почему было принято решение относиться к нему иначе, чемarray + 5 или же&array[4] + 1?

Ответы на вопрос(13)

Ваш ответ на вопрос