title: Char array declaration and initialization in C
body: <p>I was curious about why this is not allowed in C:</p>
  
  <pre><code>char myarray[4];
  
  myarray = "abc";
  </code></pre>
  
  <p>And this is allowed:</p>
  
  <pre><code>char myarray[4] = "abc";
  </code></pre>
  
  <p>I know that in the first case I should use <strong>strcpy</strong>:</p>
  
  <pre><code>char myarray[4];
  
  strcpy(myarray, "abc");
  </code></pre>
  
  <p>But why declaration and later initialization is not allowed and declaration and simultaneous initialization is allowed? Does it relate to memory mapping of C programs?</p>
  
  <p>Thanks!</p>