Globale und lokale Variablen


Lokale Variablen

Lokale Variablen müssen immer am Anfang eines Blocks definiert werden.

Mit der  Definition einer lokalen Variablens ist keine Initialisierung verbunden, für die Festlegung von Anfangswerten ist der Programmierer verantwortlich.

Eine lokale Variable wird innerhalb eines  Blocks definiert und ist außerhalb nicht sichtbar.


	main()
	{
	  int i=4;                                                            
	  i++;
	}

Mit der Ausführung eines Blockes wird eine Variable sichtbar, mit dem Ende eines Blockes geht sie verloren.

Lokale Variablen sind in verschachtelten Blöcken sichtbar, es sei denn, in einem inneren Block wird ein Wert mit gleichem Namen  definiert .


	main()
	{
	  int i=4;
          int j=10;
	  i++;
          if (j > 0)
          {
            printf("i is %d\n",i);	/* i defined in main can be seen 	*/
          }
          if (j > 0)
          {
            int i=100;			/* i is defined and so local to 
					 * this block */
            printf("i is %d\n",i);	
          }				/* i (value 100) dies here  		*/
          printf("i is %d\n",i);	/* i (value 5) is now visable.	*/
	}


Globale Variablen

Variablen, die außerhalb von Funktioen definiert werden nennt man globale Variablen weil sie programmweit sichtbar sind. Globale Variablen werden im Gegensatz zu lokalen bei ihrer  Definition initialisiert

Datentyp Initialisierung
int 0
char '\0'
float 0
pointer NULL

In diesem Beispiel ist i eine globale Variable. Sie ist in main und allen anderen Funktionen, die  noch hinzugefügt werden, sichtbar.


	int i=4;
        
	main()
	{
	  i++;
	}

Hier werden  globale und lokale Variablen eingeführt.


	int i=4;		/* globale Definition   */
	
	main()
	{
	  i++;			/* globale Variable     */
	  func
	}

	func()
	{
	  int i=10;		/* lokale Definition, globales 'i' wird verdeckt */
	  i++; 			/* lokale Variable    */
        }

i ist in main eine globale Variable und erhält durch 'i++' den Wert 5. i in  func() ist eine lokale Variable und erhält den Wert 11. Wenn die Programmsteuerung zu main zurückkehrt, wird wieder die globale Variable sichtbar und  die lokale Variable verschwindet..

Im Vergleich dazu sind Variablen vom Typ static in allen Funktionen des gleichen Quelltextfiles (nicht des gesamten Programmes!) sichtbar. Der Linker sieht diese Variablen nicht, kann sie also nicht mit anderen Objektfiles in Verbindung bringen.


Example:

Beispielprogramm.


Siehe auch:

Unter Speicherklassen werden weiter Möglichkeiten zur Variablendeklaration erklärt.


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns