41
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig

Globale Variablen

  • Upload
    goro

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig. Globale Variablen. Bisher: - PowerPoint PPT Presentation

Citation preview

Einfhrung in die Programmiersprache C 3.Tag

Einfhrung in die Programmiersprache C3.Tag

Institut fr Mathematische Optimierung -Technische Universitt BraunschweigGlobale VariablenBisher: Verwendung lokaler Variablen. Diese sind nur in der Funktion bekannt, in der sie deklariert wurden und knnen auch nur innerhalb dieser Funktion verndert werden. Globale Variablen werden vor Beginn des Hauptprogramms und nach den Funktionendeklarationen deklariert und sind ab diesem Punkt im Quelltext bekannt. Sie knnen von jeder Funktion gendert werden.Institut fr Mathematische Optimierung Technische Universitt BraunschweigGlobale VariablenDie Verwendung globaler Variablen sollte man, wenn mglich, vermeiden, da durch sie ungewollte Seiteneffekte entstehen knnen.Existieren lokale und globale Variablen gleichen Namens, dann gilt das Prinzip lokal vor global , die Funktion greift also auf ihre Variable zurck und ignoriert die globale.Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeispiel 1.Teil#includevoid change_var(void);int var;

int main(void){var=1;change_var();printf("var=%d\n",var);return 0;}Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeispiel 2.Teilvoid change_var(void){var++;}Ausgabe:var=2Institut fr Mathematische Optimierung Technische Universitt BraunschweigStatische VariablenEine weitere Variante sind lokal definierte, statische Variablen. In einer Funktion als static definiert, sind sie nur dort bekannt, behalten aber ihren Wert bis zum nchsten Aufruf der Funktion.Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeispiel 1.Teil#includevoid zaehler(void);

int main(void){zaehler();zaehler();return 0;}Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeispiel 2.Teilvoid zaehler(void){static int aufrufe=0;

aufrufe++;printf("Bisher %d Funktionsaufrufe.\n",aufrufe);}Institut fr Mathematische Optimierung Technische Universitt BraunschweigAufbau eines ProgrammsPrpozessorbefehle/Header (z.B. #include)Funktionendeklarationen (ber Funktionenprototypen)Deklarationen globaler VariablenMain-FunktionAndere FunktionenInstitut fr Mathematische Optimierung Technische Universitt Braunschweig(eindimensionale) Felder (Arrays)Eindimensionale Felder sind Vektoren von Variablen des gleichen Datentyps. Ein eindimensionales Feld wird deklariert mit:datentyp name[groesse];Beispiel:int vektor[9];deklariert einen 9-elementiger Vektor von Integer-Werten.Institut fr Mathematische Optimierung Technische Universitt BraunschweigInitialisierung von ArraysWie die herkmmlichen Variablen kann man auch Felder bei der Deklaration initialisieren. Wird fr alle Elemente ein Startwert gegeben, dann braucht die Gre des eindimensionalen Feldes nicht angegeben zu werden:double vektor[]={1.3, 2.9, 3.123};int ganz[37]={1,2};char Beispiel1[]={T,o,l,l};char Beispiel2[]="Toll;Institut fr Mathematische Optimierung Technische Universitt BraunschweigInitialisierung von ArraysEine sptere Initialisierung (also nach der Deklaration) ist auf diese Art und Weise nicht mehr mglich!Institut fr Mathematische Optimierung Technische Universitt BraunschweigZuweisung nach der DeklarationUm den einzelnen Elementen des Arrays einen Wert zuzuweisen, muss jedes Element einzeln angesprochen werden.vektor [0]=1.3;vektor[1]=2.9;vektor[2]=3.123;Hier sieht man auch, dass der Index des Feldes nicht bei 1, sondern bei 0 beginnt. Bei Nichtbeachtung fhrt das zu unangenehmen Fehlern!Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeipiel: bergeben von arrays 1.Teil#includedouble mw(int *, int);

int main(void){int array[]={2,4,5};double mittelwert=0.0;

mittelwert=mw(array,3);printf("Mittelwert: %f ",mittelwert);return 0;}Institut fr Mathematische Optimierung Technische Universitt BraunschweigBeipiel: bergeben von arrays 2.Teildouble mw(int *feld, int elemente){double tmp=0.0;int i;

for(i=0;i