I have seen it asserted several times now that the following code is not allowed by the C++ Standard:
int array[5]; int *array_begin = &array[0]; int *ar
Even if it is legal, why depart from convention? array + 5 is shorter anyway, and in my opinion, more readable.
Edit: If you want it to by symmetric you can write
int* array_begin = array; int* array_end = array + 5;