Hallo coolblue,
Also lokal in den einzelnen Prozeduren müssen die Variablen ja auf jeden Fall sein. Sonst kannst Du keine Rekusion mehr verwenden und es entsteht sowieso ein enormes Chaos.
Innerhalb einer Prozedur solltest Du die Deklarationen gar nicht auf tausende von Zeilen verteilen können, weil man Prozeduren nicht so lang macht ;-)
Ich finde, es stiftet eher Verwirrung, wenn Du am Anfang solche Hilfsvariablen wie Zähler deklarierst. Es ist dann nicht sofort klar, wozu die Variable gebraucht wird und wie lang sie gebraucht wird.
Wenn Du sie in der for-Schleife deklarierst, weiß man sofort, dass es eine Zählervariable ist und das die nur dort gilt. Und wenn man weiter unten auf eine Variable gleichen Namens stößt, weiß man, dass die nicht mit der weiter oben zu tun hat.
Ich deklariere z.B. auch andere Hilfsvariablen, die ich nur innerhalb eines Blocks brauche, lokal.
z.B. zwei Werte vertauschen:
if(blablub) {
int temp = wert1;
wert1 = wert2;
wert2 = temp;
}
Für solche Variablen findet man oft keine Bezeichnung, die klar beschreibt, wofür sie gut sind. Daher ist es meiner Meinung nach einfacher, wenn sie nur in einem sehr engen Kontext herumschwirren, in dem noch erkennbar ist, was man damit macht.
Grüße
Daniel