lokale Laufvariablen in for-Schleifen...

Wie gesagt sind lokale Variablen in ihren durch geschweifte Klammern markierte Blöcken gültig.

... ab der Stelle wo sie deklariert wurden, und natürlich auch in darin liegenden Blöcken, wenn dort nicht eine Variable gleichen Namens die ausserhalb definierte versteckt.
( Alles ohne Syntax-Gemeckere )

{
  // Serial.println(i); // hier ist i nicht definiert : Syntax-Fehler, wenn diese Zeile nicht auskommentiert wäre
  int i = 100 ; // Hier wird i definiert
  i+= 23;         // Hier wird i verändert ( auf 123 )
  Serial.println(i);
  for (int j = 0 ; j < i ; j++)  // Hier wird j definiert
  {
     Serial.print(i);   // hier ist das äussere i  (123) verwendbar 
     Serial.println(j);
  }  
  if ( j == i ) // hier ist j immer noch definiert, und nach dem Schleifenende auch auf 123 hochgezählt worden
  {
      int i = -1 ; // erlaubt, dieses i gilt ab hier
      Serial.println(i);  // -1
  }  
  Serial.println(i); // hier gilt wieder das äussere i (123)
}

Das nur als kleine Ergänzung und zur Abschreckung :wink: