Variablen
Globale, Lokale Variablen
In der Programmiersprache C++ wird zwischen zwei Variablendeklarationen unterschieden:
Globale und Lokale Deklaration.
Global deklarierte Variablen sind von allen Funktionen abruf- und veränderbar.
Globale Variablen werden außerhalb, über dem Funktionskopf, einer Funktion deklariert, wobei lokale innerhalb, an jeder Stelle deklariert werden können. Der Inhalt einer lokal deklarierten Variable wird nach dem Verlassen einer Funktion gelöscht. Somit sind diese Variablen "flüchtig".
Globale Variablen
Es scheint einfach ausschließlich Variablen global zu deklarieren, da man diese in allen Funktionen aufrufen und verändern kann und wie ggf.
bei lokal deklarierten keine Parameter übergeben werden müssen.
Es sind jedoch auch Nachteile damit verbunden:
1. Globale Variablen brauchen viel Speicher.
2. Die Flexibilität (Widerverwendbarkeit) einer Funktion ist stark eingeschränkt. (Man kann eine Funktion nicht einfach in ein anderes Programm einfügen)
Die Gründe zeigen deutlich, dass man so wenige Variablen wie möglich global deklarieren sollte.
Lokale Variablen
Der Speicherplatz für lokale Variablen wird beim Aufruf der Funktion auf dem Stack angelegt und nach dem Verlassen der Funktion wieder freigegeben. Die der Funktion übergebenen Variablen (Parameter) zählen auch zu lokalen Variablen.
Wenn eine lokale mit dem gleichen Variablennamen einer bereits deklarierten globalen Variable deklariert wird, so ist die lokale Variable bis zum Verlassen der Funktion "aktiv". Die globale Variable bleibt dabei "unversehrt" und behält den Wert, den sie vor dem Aufruf der Funktion hatte.
Trotzdem kann man auf die Globale Variable zugreifen. Dazu muss man vor dem
Variablennamen einfach zwei Doppelpunkte schreiben:
cout
cout
Sollte man nicht wollen, dass der Wert einer lokalen Variablen nach dem Verlassen verloren geht, so muss man sie als statische Variable deklarieren:
static [Variablentyp] [Variablenname];
zum Beispiel:
static unsigned int uiVariable;
Überprüfung des Verstandenen
Nennen sie Vor- und Nachteile von globalen und lokalen Variablen?
Arbeitsauftrag
Schreibe ein Programm, dass die Quersumme einer Zahl errechnet und das Ergebnis an eine Ausgabefunktion übergibt.
a) Übergebe eine lokale Variable an eine lokale Variablen einer anderen Funktion
b) Deklariere eine globale Variable
Beispiel für globale Variablen
#include
int i,n; // globale Deklaration über den Funktionen ,Funktion()\' und ,main()\'
int Funktion();
int main()
{
i = 5;
n = 7;
cout
cout
Funktion();
return 0;
}
int Funktion()
{
cout
cout
i++;
n++;
cout
cout
return 0;
}
Beispiel für lokale Variablen
#include
int Funktion(int i, int n);
int main()
{
int i = 5, n = 7; // lokale Deklaration in ,main()\'
cout
cout
Funktion(i,n); // Variablenübergabe
return 0;
}
int Funktion(int i, int n) // lokale Deklaration in ,Funktion()\'
{
cout
cout
i++;
n++;
cout
cout
return 0;
}
Beispiel für globalen und lokalen Zugriff in einer Funktion
#include
int a=1;
void main(void)
{
int a=2;
cout
cout
if (a==2)
{
int a = 3;
cout
}
}
Lösung des Arbeitsauftrages
a) als lokale Variablen
#include
int Ausgabe(char[2],int);
int main()
{
char cZahl[2]; // lokale Deklaration
int iQuersumme;
cout
cin cZahl;
iQuersumme=cZahl[0]+cZahl[1]+cZahl[2]-144;
Ausgabe(cZahl,iQuersumme);
return 0;
}
int Ausgabe(char cZahl[2],int iQuersumme)
{
cout
return 0;
}
b) als globale Variablen
#include
char cZahl[2]; // globale Deklaration
int iQuersumme;
int Ausgabe();
int main()
{
cout
cin cZahl;
iQuersumme=cZahl[0]+cZahl[1]+cZahl[2]-144;
Ausgabe();
return 0;
}
int Ausgabe()
{
cout
return 0;
}
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com