title: Why array pass by reference, but struct pass by value implicitly in C?
body: <p>Why they design like this?  I am very confused.</p>
  
  <p>Update : I really want to know the answer of the question. I Googled but I can find nothing quite useful. </p>
  
  <p>I think there maybe two reasons:</p>
  
  <p><strong>One</strong> : technical. Maybe it is hard to implement by the compiler (struct pass by reference). If the answer is this one. Please explain it.</p>
  
  <p><strong>Two</strong>: good for usage(programming). As i think, it is more elegant (or beautiful?), if struct pass by reference. I can not find some examples that show the advantage (strut pass by value).  My programming career is not very long. In practice, I prefer to pass struct to a function as a pointer(pointer occupy less space on stack).</p>