title: C: differences between char pointer and array
body: <p>Consider:</p>
  
  <pre><code>char amessage[] = "now is the time";
  char *pmessage = "now is the time";
  </code></pre>
  
  <p>I read from <a href="https://en.wikipedia.org/wiki/The_C_Programming_Language" rel="noreferrer">The C Programming Language</a>, 2nd Edition that the above two statements don't do the same thing.</p>
  
  <p>I always thought that an array is an convenient way to manipulate pointers to store some data, but this is clearly not the case... What are the "non-trivial" differences between arrays and pointers in C?</p>