title: Creating a const array of const elements
body: <p>I want to declare a constant array of constant char arrays. If I write it like this:</p>
  
  <pre><code>const char foo[] = "Foo";
  const char bar[] = "Bar";
  const char* const foobar[2] = { foo, bar };
  </code></pre>
  
  <p>It seems to work, but if I try to read it using <a href="http://c-faq.com/decl/spiral.anderson.html" rel="noreferrer">"the spiral rule"</a>, foobar is read as:</p>
  
  <p>"foobar is an array 2 of constant (??) to a pointer to a char constant"</p>
  
  <p>Using this <a href="https://stackoverflow.com/a/5503393/804495">stack overflow</a> answer, </p>
  
  <blockquote>
    <p>const applies to the thing left of it. If there is nothing on the left then it applies to the thing right of it.</p>
  </blockquote>
  
  <p>the first <code>const</code> would apply to the char, and the second <code>const</code> would apply to same char as well. </p>
  
  <p>Both ways of reading it doesn't make sense, but the code does function (in Arduino [sorry], at least). Which <code>const</code> is making which a constant? Is there a more logical way to write it?</p>