innere Schleife mit demselben Variablennamen wie die äußere Schleife

unter der Annahme des folgenden einfachen Codes:

for(int i=0; i < 1000; i++)
{
  cout << "Outer i: " << i << endl;
  for(int i=0; i < 12; i++)
  {
    cout << "Inner i:" << i << endl;
  }
}

Funktioniert sehr gut. Der gleiche Variablenname wird in beiden Schleifen verwendet und die Ausgabe ist in Ordnung.

Verstehe ich es richtig, dass beide Variablen im Stapel erstellt werden und wenn die äußere Schleife zur neuen inneren Schleife kommt, ein neuer "Namespace" (möglicherweise der falsche Name ..) erstellt wird? Aber warum wird es überschrieben? Wenn ich in der inneren Schleife einen anderen Namen für die Variable wähle, kann ich auch auf die zugreifeni von der äußeren Schleife.

Ein bisschen verwirrt bin ich.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage