title: Difference between char *str and char str[]
body: <p>I assign the same string value to a pointer and a <code>char</code> array</p>
  
  <pre><code>char *str = "hello" "world";  
  char str1[] = "hello" "world";
  </code></pre>
  
  <p>Then use <code>sizeof()</code>function to return their lengths</p>
  
  <pre><code>sizeof(str);     //  on my computer, it's 8 !!
  sizeof(str1);    //  return 11, which is right
  </code></pre>
  
  <p>But both of them can be printed out right by <code>%s</code>:</p>
  
  <pre><code>printf("%s\n%s\n", str, str1);
  </code></pre>
  
  <p>So why does <code>sizeof(str);</code>return a wrong value ?</p>