title: C: declare a constant pointer to an array of constant characters
body: <p>I am trying to understand array declarations, constness, and their resulting variable types.</p>
  
  <p>The following is allowed (by my compiler):</p>
  
  <pre><code>      char s01[] = "abc" ;  // typeof(s01) = char*
  const char s02[] = "abc" ;  // typeof(s02) = const char* (== char const*)
  char const s03[] = "abc" ;  // typeof(s03) = char const* (== const char*)
  </code></pre>
  
  <p>Alternatively, we can declare the array size manually:</p>
  
  <pre><code>      char s04[4] = "abc" ;  // typeof(s04) = char*
  const char s05[4] = "abc" ;  // typeof(s05) = const char* (== char const*)
  char const s06[4] = "abc" ;  // typeof(s06) = char const* (== const char*)
  </code></pre>
  
  <p>How do I get a resulting variable of type <code>const char* const</code>?  The following are not allowed (by my compiler):</p>
  
  <pre><code>const char s07 const[] = "abc" ;
  char const s08 const[] = "abc" ;
  const char s09[] const = "abc" ;
  char const s10[] const = "abc" ;
  const char s11 const[4] = "abc" ;
  char const s12 const[4] = "abc" ;
  const char s13[4] const = "abc" ;
  char const s14[4] const = "abc" ;
  </code></pre>
  
  <p>Thanks</p>