title: Replacing decayed array with a pointer to array resulting in segmentation fault
body: <p>I was trying to loop through an array using pointers:</p>
  <pre><code>#include &lt;iostream&gt;
  #include &lt;iterator&gt;
  
  int main() 
  {
      char name[]{ &quot;Abhi&quot; };
  
      for (char* ptr_c{ name }; ptr_c != (ptr_c + std::size(name)); ++ptr_c) {
          std::cout &lt;&lt; *ptr_c;
      } 
  
      std::cout &lt;&lt; &quot;\n&quot;;
  }
  </code></pre>
  <p>This results in: <code>Error: Segmentation fault core dumped</code></p>
  <p>However, in the <code>for</code> loop's condition testing:</p>
  <pre><code> for (char* ptr_c{ name }; ptr_c != (ptr_c + std::size(name)); ++ptr_c)
                                       ^^^^^^  
  </code></pre>
  <p>Replcaing <code>ptr_c</code> with <code>name</code> makes it work. Why?
  Shouldn't <code>name</code> decay to <code>ptr_c</code> anyway?</p>