title: Modifying string literals or char arrays with pointer arithmetic
body: <p>I understand <code>char* pString</code> is read only, therefor <code>pString[0]='A'</code> will give a Segmentation fault, but why does <code>pString2[0]='A'</code> work in below code:</p>
  <pre><code>    char* pString  = &quot;abcdefg&quot;;
      char tmpStr[80];
      strcpy(tmpStr, pString);
      char* pString2  = tmpStr;
  
      //pString[0] = 'A'; // gives segmentation error since string literal is read-only.
      pString2[0] = 'A'; // why this one works? 
      
  </code></pre>