Is there a reason why an array name is not an lvalue?
<p>For example, </p>

<pre><code>int x[10];
int i = 0;
x = &amp;i; //error occurs!
</code></pre>

<p>According to <a href="http://careferencemanual.com/" rel="noreferrer">C - A Reference Manual</a>, an array name cannot be an lvalue. Thus, x cannot be an lvalue. But, what is the reason the array name cannot be an lvalue? For example, why does an error occur in the third line?</p>