title: Why doesn't C++ accept signed or unsigned char for arrays of characters
body: <p>I am using C++ in native mode with Visual Studio 2017.  That compiler compiles the statement below without complaint:</p>
  
  <pre><code>const char * AnArrayOfStrings[]  = {"z1y2x3w4", "Aname"};
  </code></pre>
  
  <p>However, if I change the above statement to specify that char is signed or unsigned, the compiler emits a <strong>C2440</strong> error.  For instance, the statements below, do <strong>not</strong> compile:</p>
  
  <pre><code>const signed   char * AnArrayOfStrings2[] = {"z1y2x3w4", "Aname"};
  
  const unsigned char * AnArrayOfStrings2[] = {"z1y2x3w4", "Aname"};
  </code></pre>
  
  <p>I fail to see the reason for the compiler refusing to compile the statement when the sign of char is made explicit.</p>
  
  <p><strong>My question is:</strong> is there a good reason that I have failed to see for the compiler refusing to compile those statements ?  </p>
  
  <p>Thank you for your help (I did research in StackOverflow, the C++ documentation, I used Google and, consulted about a dozen C/C++ books in an effort to find the answer myself but, a reason still eludes me.)</p>