Взять адрес элемента массива «один за другим» через индекс: допустимый по стандарту C ++ или нет?
Я уже неоднократно утверждал, что следующий код не разрешен стандартом C ++:
int array[5];
int *array_begin = &array[0];
int *array_end = &array[5];
Является&array[5]
законный код C ++ в этом контексте?
Я хотел бы получить ответ со ссылкой на стандарт, если это возможно.
Также было бы интересно узнать, соответствует ли он стандарту С. И если это не стандартный C ++, почему было принято решение относиться к нему иначе, чемarray + 5
или же&array[4] + 1
?