title: array of struct is passed by value rather than reference
body: <p>Using <a href="http://www.maths.cam.ac.uk/undergrad/catam/ccatsl/manual/node50.html" rel="nofollow">this</a> guide I was told that arrays are passed by reference. This holds when a struct looks like this:</p>
  
  <pre><code>struct Person{
   char* name;
   int id;
  }
  </code></pre>
  
  <p>But is doesn't when the struct looks like:</p>
  
  <pre><code>struct Person{
   char name[20];
   int id;
  }
  </code></pre>
  
  <p>When using the seconds struct, The <code>name</code> array is copied by value:</p>
  
  <pre><code>struct Person p1 = {"John", 1234};
  struct Person p2 = p1;
  p2.name[0] = 'L';
  
  // p1.name[0] is still 'K'
  </code></pre>
  
  <p>Why is this happening? </p>