Die zweite Anmerkung betrifft ebenfalls das Scoping von Variablen, und zwar eine Eigenschaft, die insbesondere bei Programmieranfängern häufig zu Verwirrung führt. Variablen unterschiedlicher Scopes haben nichts miteinander zu tun, auch wenn sie den gleichen Namen tragen. Ein Beispiel:
#include <cstdio> void f() { int x = 43; } int main() { int x = 42; f(); printf( "%i\n", x ); }
Dieses Programm wird natürlich die Zahl 42
auf dem Bildschirm ausgeben; zwar wird zwischen der Deklaration und Zuweisung von x = 42
und deren Verwendung in printf
die Funktion f
aufgerufen, in welcher ebenfalls eine Variable x
existiert, welcher der Wert 43
zugewiesen wird, aber diese zweite Variable x
hat nichts mit der ersten zu tun und bezeichnet einen vollkommen unabhängigen Speicherbereich. Diesen Punkt gilt es unbedingt zu beachten.
Damit wäre die Einführung zu den Variablen abgeschlossen; im nächsten Artikel wollen wir Funktionen und Variablen kombinieren und uns mit den Funktionsparametern beschäftigen. Außerdem sollen dem Stack noch ein paar Worte gewidmet werden.
Kommentare (8)