title: Declaration difference and scope?
body: <p>In question <a href="https://stackoverflow.com/questions/31513260/declaration-difference">Declaration difference?</a> it was asked what the difference is between</p>
  
  <pre><code>int i;
  
  for (i=0; i&lt;100; i++) {
      //some loop....
  }
  </code></pre>
  
  <p>and:</p>
  
  <pre><code>for (int i=0; i&lt;100; i++) {
      //some loop....
  }
  </code></pre>
  
  <p>The answers are clear; the 2nd is C99 and the scope of <code>i</code> is limited to the loop. I don't have C99 so I can't test and hence ask it as a question: what would be the resolution in the following case:</p>
  
  <pre><code>int i = 32;
  
  for (int i=i; i&lt;100; i++) {
      // some loop
  }
  </code></pre>
  
  <p>Would the "new" <code>i</code> be initialized with the "old" <code>i</code>? Or would the old <code>i</code> already be inaccessible becaus a new <code>i</code> has already been declared?</p>