From C11 standard (§6.3.2.1 Lvalues, arrays, and function designators):
A modifiable lvalue is an lvalue that does not have array type, does not have an incomplete type, does not have a const-qualified type, and if it is a structure or union, does not have any member (including, recursively, any member or element of all contained aggregates or unions) with a const-qualified type.
From C in a Nutshell:
A modifiable lvalue is an lvalue that is not declared as a const -qualified “Type Qualifiers” on page 180), and that does not have an array type.
What is the reason that a modifiable lvalue can't have an array type?
Is an object of an array type always implicitly const?