An expression E of type “array of NT” or “array
of unknown bound of T” can be converted to a prvalue of type
“pointer to T”.
If E is a prvalue,
the temporary materialization conversion ([conv.rval]) is applied.
If the result of E (possibly converted) is an object
whose type is similar to the type of E,
the result is a pointer to the first element of the array;
otherwise, the behavior is undefined.