C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Ähnliche Dokumente
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Klassen und Objekte

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Praxis der Programmierung

C++ - Objektorientierte Programmierung Vererbung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Prozeduren und Funktionen

Programmierung und Angewandte Mathematik

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Praxis der Programmierung

C++ - Einführung in die Programmiersprache Schleifen

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Globale Variablen Diverses. Globale Variablen. Globale Variablen

Java Anweisungen und Ablaufsteuerung

Speicherklassen (1) Lokale Variablen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ - Einführung in die Programmiersprache Variablen und Konstanten. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

1 pulsierender Speicher

C++ - Objektorientierte Programmierung Polymorphie

Programmierung mit C Zeiger

Java Einführung Methoden. Kapitel 6

Herzlich willkommen!

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

2. Programmierung in C

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

Funktionen: Rückgabewert

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Kontrollstrukturen (1)

Programmierung mit C Funktionen

Einstieg in die Informatik mit Java

C++ - Einführung in die Programmiersprache Arrays

Einstieg in die Informatik mit Java

Repetitorium Programmieren I + II

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

2. Programmierung in C

Java Ablaufsteuerung (Beispiele)

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

8. Referenzen und Zeiger

Zeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss.

2 Beispiel Sinusberechnung

3.2 Datentypen und Methoden

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

6. Unterprogramme 6-1

Repetitorium Programmieren I + II

Einführung in die Programmiersprache C

Klausur in Programmieren

Einführung in die Programmiersprache C

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Projekt 3 Variablen und Operatoren

Variablen, Konstanten und Datentypen

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

C++ - Funktionen und mehr -

Grundlagen der Informatik 8. Funktionen I

EWS, WS 2016/17 Pfahler I-1

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Vorlesung Programmieren

Arrays. Einleitung. Deklarieren einer Array Variablen

Java-Applikationen (Java-Programme)

Einführung in die Programmierung Wintersemester 2008/09

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Tag 4 Repetitorium Informatik (Java)

C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Grundelemente objektorientierter Sprachen (1)

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

VB.NET - Prozeduren und Funktionen

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Java - Klassen und Objekte

Programmierwerkstatt. Arrays, Pointer und Referenzen

Kapitel 2. Einfache Beispielprogramme

Grundelemente objektorientierter Sprachen (1)

Java Referenzdatentypen genauer betrachtet

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Einstieg in die Informatik mit Java

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Funktionen in JavaScript

Methoden und Wrapperklassen

C++ - Variablen: Gültigkeit - Sichtbarkeit

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

Einführung in die Programmierung für NF. Übung

Transkript:

C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue

Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer in sich abgeschlossenen Aufgaben gehören. Beschreibung einer bestimmten Funktionalität mit Hilfe einer Programmiersprache. Strukturierung von großen Programmen. C++ - Einführung 06.05.15 Seite 2

Parameter und Rückgabewerte Jeder Funktion können Werte übergeben werden. Eine Funktion kann einen Rückgabewert an den Aufrufer zurückgeben. C++ - Einführung 06.05.15 Seite 3

Aufruf von Subroutinen 4.) main() 1.) sub 01(p01) 2.) sub 02(p01, p02) 3.) C++ - Einführung 06.05.15 Seite 4

main() int main() { } umrechnung_temperatur(); return 0; Beispiele/_0701_FunktionOhneRueckgabe... C++ - Einführung 06.05.15 Seite 5

main() Einstiegspunkt in ein C++-Programm. Steuerungszentrale für ein C++-Projekt. In einem C++-Projekt ist diese Funktion nur einmal vorhanden. Hinweis: Bei einer Speicherung eines C++-Projekts auf einen Netzlaufwerk erstellt NetBeans automatisiert diese Funktion zweimal. Wenn das Programm ohne Fehler vollständig durchlaufen wurde, gibt die Funktion den Wert 0 zurück. C++ - Einführung 06.05.15 Seite 6

Funktionskopf und rumpf int main() Funktionskopf { } umrechnung_temperatur(); return 0; Funktionsrumpf C++ - Einführung 06.05.15 Seite 7

Aufbau einer Funktion Datentyp Funktionsname ( Parameterliste ) Funktions- kopf { Anweisung; return wert; Funktionsrumpf } C++ - Einführung 06.05.15 Seite 8

Funktionskopf int main ( p01,, p02,... ) Datentyp Name ( Parameterliste ) Der Datentyp legt den Typ der Funktion und des Rückgabewertes fest. Der Name des Funktionskopfes ist eindeutig. In den runden Klammern folgt dem Funktionsnamen eine Parameterliste. Die Parameterliste kann leer sein. C++ - Einführung 06.05.15 Seite 9

Bezeichner Namen für Funktionen, Konstanten, Variablen etc. Die Namen sind in ihrem Gültigkeitsbereich eindeutig. Schlüsselwörter der Programmiersprache sind als benutzerdefinierte Namen nicht erlaubt. Unterscheidung zwischen Groß- und Kleinschreibung. Der Name main und Main sind für den Compiler verschiedene Platzhalter. C++ - Einführung 06.05.15 Seite 10

Erlaubte Zeichen Buchstaben A...Z und a...z. Zahlen 0...9. Der Unterstrich. C++ - Einführung 06.05.15 Seite 11

Konventionen Benutzerdefinierte Namen beginnen mit einem Buchstaben. Namen, die mit einem Unterstrich beginnen, werden für Bezeichnungen aus dem Standard von C++, den zugelassenen Bibliothekten und Makronamen genutzt. Leerzeichen werden durch Unterstriche ersetzt. Zum Beispiel celsius_to_fahrenheit. Namen, die nur aus Großbuchstaben und Unterstrichen bestehen, sind Makros oder Konstanten vorbehalten. C++ - Einführung 06.05.15 Seite 12

Konventionen für Funktionen Funktionen, die mit is beginnen, liefern einen boolschen Wert zurück. Zum Beispiel is_integer überprüft, ob der übergebene Parameter ein Integer ist. Funktionen, die mit set beginnen, setzen eine Variable. Funktionen, die mit get beginnen, liefern einen beliebigen Wert zurück. C++ - Einführung 06.05.15 Seite 13

Funktionsrumpf Beginn und Ende mit dem geschweiften Klammern. Kapselung von Anweisungen. In einem Funktionsrumpf kann eine Funktion aufgerufen, aber nicht definiert werden. C++ - Einführung 06.05.15 Seite 14

Funktion ohne Rückgabewert void umrechnung_temperatur(){ char einheit; double temperatur; double umrechnung; Beispiele/_0701_FunktionOhneRueckgabe... } cout << "Wert in Celsius: "; cin >> temperatur; cout << "\numrechnung in C-elsius, F-ahrenheit, K-elvin "; cin >> einheit; switch(einheit){ case 'F': umrechnung = celsius_to_fahrenheit(temperatur); break; default: cout << "\ndie Einheit ist nicht bekannt."; } cout << "\numrechnung von Celsius nach " << einheit << ": " << umrechnung; C++ - Einführung 06.05.15 Seite 15

Nutzung Die Funktion verändert keine Daten. Die Funktion gibt die Parameter am Bildschirm aus oder schreibt diese in eine Datei. C++ - Einführung 06.05.15 Seite 16

Funktionskopf void umrechnung ( p01,, p02,... ) Datentyp Name ( Parameterliste ) Der Datentyp void kennzeichnet Funktionen, die keinen Rückgabewert an den Aufrufer zurück geben. C++ - Einführung 06.05.15 Seite 17

Parameterliste im Funktionskopf void umrechnung_temperatur ( p01 ) void umrechnung_temperatur ( p01 char e, double t ) Datentyp Name ( Parameterliste ) Beginn und Ende mit Hillfe der runden Klammern. Eine Parameterliste kann leer sein. C++ - Einführung 06.05.15 Seite 18

Parameter im Funktionskopf void umrechnung_temperatur ( p01 char e, double t ) Datentyp Name ( p01 typ var, typ var ) Die Parameter werden durch Kommata in der Parameterliste getrennt. Jeder Parameter setzt sich aus einem Datentyp und den Namen des Parameters zusammen. Die Parameter sind nur in dem dazugehörigen Funktionsrumpf definiert. Eine Parameterliste kann beliebig viele Parameter haben. C++ - Einführung 06.05.15 Seite 19

Aufruf einer Funktion ohne Rückgabewert umrechnungtemmperatur(); void umrechnung_temperatur ( p01 ) Jede Funktion wird mit Hilfe ihres Namens aufgerufen. Der Name ist ein eindeutiger Platzhalter für die Funktion. Dem Namen folgt die Parameterliste. Die Parameterliste beim Aufruf entspricht der Liste im Funktionskopf. C++ - Einführung 06.05.15 Seite 20

Keine Übergabe von Parametern umrechnung_temperatur ( p01 ) ; void umrechnung_temperatur ( p01 ) Die Parameterliste im Funktionskopf ist leer. Die Parameterliste beim Aufruf ist leer. C++ - Einführung 06.05.15 Seite 21

Übergabe von Parametern umrechnung_temperatur ( p01 'f', 3.234 ) ; void umrechnung_temperatur ( p01 char e, double t ) Für jeden Parameter der Parameterliste im Funktionskopf wird ein Wert übergeben. Die Parameter des Aufrufs werden von links nach rechts dem Parameter im Funktionskopf zugeordnet. Der Parameter im Funktionskopf und der Wert im Aufruf sollten den gleichen Datentypen haben. C++ - Einführung 06.05.15 Seite 22

Funktion mit Rückgabewert double celsius_to_fahrenheit(double temperatur) { double fahrenheit = 0; fahrenheit = temperatur * 1.8 + 32; return fahrenheit; } Beispiele/_0702_FunktionMitRueckgabe... C++ - Einführung 06.05.15 Seite 23

Nutzung Daten werden vom Bildschirm oder einer Datei eingelesen und in anderen Funktion weiterverarbeitet. Die Parameter werden durch eine Berechnung etc. verändert. C++ - Einführung 06.05.15 Seite 24

Funktionskopf double celsius_to_fahrenheit ( p01, p02,... ) Datentyp Name ( Parameterliste ) Die Funktion ist vom Datentyp... Die Funktion gibt einen Wert an den Aufrufer von einem bestimmten Datentyp zurück. C++ - Einführung 06.05.15 Seite 25

Rückgabewert double celsius_to_fahrenheit(double temperatur) { } return fahrenheit; Das Schlüsselwort return liefert einen Wert an den Aufrufer zurück. Der Wert entspricht dem Datentyp der Funktion oder kann in diesen konvertiert werden. Funktionen können immer nur ein Wert zurückliefern. Ein Array von Werten ist nicht möglich. C++ - Einführung 06.05.15 Seite 26

Berechnung eines Rückgabewertes double celsius_to_kelvin(double temperatur) { return (temperatur + 273); } Beispiele/_0702_FunktionMitRueckgabe... Der Rückgabewert kann mit Hilfe eines Ausdrucks berechnet werden. Im ersten Schritt wird der Ausdruck ausgewertet. Das Ergebnis der Auswertung wird an den Aufrufer zurückgegeben. Der Ausdruck wird geklammert. C++ - Einführung 06.05.15 Seite 27

return in Abhängigkeit einer Bedingung Beispiele/_0702_FunktionMitRueckgabe... switch(einheit){ case 'C': return temperatur; case 'K': umrechnung = celsius_to_kelvin(temperatur); return umrechnung; case 'F': umrechnung = celsius_to_fahrenheit(temperatur); return umrechnung; default: cout << "\ndie Einheit ist nicht bekannt."; return 0; } C++ - Einführung 06.05.15 Seite 28

Datenstrukturen als Rückgabewert struct umfrage{ char geschlecht; int alter; }; Beispiele/_0702_FunktionStruktur... umfrage setumfrageergebnis(){ umfrage proband; } cout << "Bitte geben Sie das Geschlecht ein: "; cin >> proband.geschlecht; return proband; C++ - Einführung 06.05.15 Seite 29

Hinweis Eine Anweisung return kann einer beliebigen Position in einer Funktion stehen. Eine Anweisung return beendet die Funktion. C++ - Einführung 06.05.15 Seite 30

Aufruf einer Funktion variable = celsius_to_fahrenheit(...); 1.) n.) double celsius_to_fahrenheit (... { } return wert; ) C++ - Einführung 06.05.15 Seite 31

Übergabe von Werten an die Funktion umrechnung_temperatur ( p01 'f', 3.234 ) ; void umrechnung_temperatur ( p01 char e, double t ) Beim Aufruf einer Funktion wird in diesem Beispiel den Parameter ein Wert übergeben. Die Parameter des Aufrufs werden von links nach rechts dem Parameter im Funktionskopf zugeordnet. C++ - Einführung 06.05.15 Seite 32

call by Value Der Wert der zu übergebenen Variablen wird beim Aufruf 0040100C f char 00401004 3.234 double in den dazugehörigen Parameter gespeichert. 0050200C f char 00503004 3.234 double C++ - Einführung 06.05.15 Seite 33

Erläuterung Der Wert einer Variablen, einer Konstanten oder eines berechneten Ausdrucks wird an ein Parameter im Funktionskopf übergeben. Der Wert der Quelle und der Wert des Parameters / des Ziels werden an unterschiedlichen Stellen im Speicher abgelegt. Die Quelle kann durch die Funktion nicht verändert werden. Der Wert der Quelle ist schreibgeschützt. Nur der Wert im Parameter kann durch die Anweisungen im dazugehörigen Funktionsrumpf verändert werden. C++ - Einführung 06.05.15 Seite 34

Übergabe des Wertes 0050200C f 00401004 3.234 umrechnung_temperatur ( p01 'f', 3.234 ) ; void umrechnung_temperatur ( p01 char e, double t ) 0050200C f 00503004 3.234 C++ - Einführung 06.05.15 Seite 35

Übergabe von Adressen an die Funktion celsius_to_kelvin ( &temperatur ) ; void celsius_to_kelvin ( p01 double *temperatur ) Beim Aufruf einer Funktion wird in diesem Beispiel den Parameter eine Speicheradresse, an der ein Wert liegt, übergeben. Die Parameter des Aufrufs werden von links nach rechts dem Parameter im Funktionskopf zugeordnet. C++ - Einführung 06.05.15 Seite 36

call by reference Die Adresse der zu übergebenen Variable im Speicher 0040100C f char 00401004 3.234 double wird an den dazugehörigen Parametern übergeben. 0050200C 0040100C *char 00503004 00401004 *double C++ - Einführung 06.05.15 Seite 37

Erläuterung Der Wert einer Variablen, einer Konstanten oder eines berechneten Ausdrucks wird an einer Speicherstelle abgelegt. An den Parameter wird ein Verweis auf den Beginn des Speicherbereichs der Quelle übergeben Die Quelle sowohl als auch der Zielparameter greifen auf die gleiche Stelle im Speicher zu. Aufrufer sowohl als auch die Anweisungen im dazugehörigen Funktionsrumpf können den Wert an der Position im Speicher ändern. C++ - Einführung 06.05.15 Seite 38

Übergabe von Speicheradressen celsius_to_kelvin ( &temperatur ) ; 00401004 3.234 void celsius_to_kelvin ( p01 double *temperatur ) C++ - Einführung 06.05.15 Seite 39

Beispiel Beispiele/_0703_FunktionCallByReference_Zeiger... void celsius_to_kelvin(double *temperatur){ *temperatur = *temperatur + 273; } double umrechnung_temperatur(char einheit, double temperatur){ switch(einheit) { case 'K': case 'k': celsius_to_kelvin(&temperatur); break; C++ - Einführung 06.05.15 Seite 40

Nutzung von konstanten Zeigern struct umfrage{ double gewicht; double groesse; }; double bodymassindex(const umfrage *ptrproband){ double bmi = 0; Beispiele/_0702_FunktionStruktur... } bmi = ptrproband->groesse * ptrproband->groesse; return bmi; int main(){ umfrage proband; cout << "\nbmi: " << bodymassindex(&proband); C++ - Einführung 06.05.15 Seite 41

Nutzung von Referenzen Beispiele/_0703_FunktionCallByReference_Referenz... void celsius_to_kelvin(double &temperatur) { temperatur = temperatur + 273; } double umrechnung_temperatur(char einheit, double temperatur){ switch(einheit) { case 'K': case 'k': celsius_to_kelvin(temperatur); break; C++ - Einführung 06.05.15 Seite 42

Lebensdauer einer Variablen Wie lange existiert eine Variable? Die Lebensdauer kann sich auf das Modul (die Datei), die Funktion oder einen Anweisungsblock beziehen. Bei der Geburt wird Speicher für die Variable reserviert, der beim Tod freigegeben wird. C++ - Einführung 06.05.15 Seite 43

Globale Variablen const char close = 'q'; const char newline = '\n'; int main() { } return 0; Beispiele/_0703_Funktion_Variable_Gueltigkeit... C++ - Einführung 06.05.15 Seite 44

Erläuterung Globale Variablen sind für das Modul (die Datei), in der sie deklariert sind, gültig. Konstanten, die im gesamten Programm benötigt werden, werden global am Anfang der Datei deklariert. Auf globale Variablen sollte verzichtet werden. C++ - Einführung 06.05.15 Seite 45

Lokale Variablen in einer Funktion Beispiele/_0703_Funktion_Variable_Gueltigkeit... int main() { char zeichen; int wert; } do { cout << "\nbitte geben Sie einen Wert ein: "; cin >> wert; cout << "\nmöchten Sie einen weiteren Wert einlesen (q quit)?"; cin >> zeichen; }while(zeichen!= close); return 0; C++ - Einführung 06.05.15 Seite 46

Lokale Variablen in einem Anweisungsblock int main() { char zeichen; int wert; Beispiele/_0703_Funktion_Variable_Gueltigkeit... do{ cout << "\nbitte geben Sie einen Wert ein: "; cin >> wert; for(int lzahl = 1; lzahl <= wert; lzahl++ ){ for(int rzahl = 1; rzahl <= wert; rzahl++) { cout << (lzahl * rzahl); } } C++ - Einführung 06.05.15 Seite 47

Lokale Variablen Lokale Variablen sind in der Funktion oder den Anweisungsblock gültig, in der sie deklariert sind. Ein Block beginnt und endet mit den geschweiften Klammern. Variablen, die in einem Block definiert sind, sind auch nur in diesem Block gültig. Sobald der Block beim Durchlauf des Programms betreten wird, wird Speicherplatz für die Variable bereitgestellt. Sobald der Block verlassen wird, wird der Speicherplatz wieder freigegeben. Ein Zugriff auf die Variable ist nicht möglich. C++ - Einführung 06.05.15 Seite 48

Sichtbarkeit einer Variablen Wann ist ein Zugriff auf die Variable möglich? In welchen Bereich kann der Inhalt / den Wert der Variablen gelesen und verändert werden? Globale Variablen können von lokalen Variablen gleichen Namens überdeckt werden. C++ - Einführung 06.05.15 Seite 49

Überdeckung einer globalen Variablen double radius = 10; Beispiele/_0703_Funktion_Variable_Sichtbarkeit... int main() { double radius; } cout << "\n Bitte geben Sie einen Radius ein: "; cin >> radius; cout << "\n Der Kreisradius (lokal) beträgt: " << radius; cout << "\n Der Kreisradius (global) beträgt: " << ::radius; return 0; C++ - Einführung 06.05.15 Seite 50

Gültigkeit der Variable... radius ::radius function.() function.() Modul main() Modul main() C++ - Einführung 06.05.15 Seite 51

Sichtbarkeit der Variable... radius ::radius function.() function.() Modul main() Modul main() C++ - Einführung 06.05.15 Seite 52

Zugriff auf die überdeckte globale Variable :: global ; Mit Hilfe des Gültigkeitsoperators kann auf die globale Variable innerhalb der Funktion zugriffen werden. Der Gültigkeitsoperator besteht aus zwei Doppelpunkten, C++ - Einführung 06.05.15 Seite 53

Statische Variable int addition(int neuwert){ static int summe = 0; Beispiele/_0703_Funktion_Variable_Static.. } summe = summe + neuwert; return summe; int main() { int summe = 0; for(int wert = 1; wert <= 10; wert++){ summe = addition(wert); } C++ - Einführung 06.05.15 Seite 54

Erläuterung Statische Variablen sind in der Funktion oder den Anweisungsblock gültig, in der sie deklariert sind. Sobald der Block beim Durchlauf des Programms betreten wird, wird Speicherplatz für die statische Variable bereitgestellt. Sobald der Block verlassen wird, wird der Speicherplatz bei einer statischen Variablen nicht freigegeben. Beim nächsten Aufruf der Funktion ist ein Zugriff auf den gültigen Wert möglich. Sobald das Modul verlassen wird, wird der Speicherplatz für eine statische Variable freigegeben. C++ - Einführung 06.05.15 Seite 55

Deklaration static int summe ; static Datentyp Name ; Eine Deklaration von statischen Variablen steht immer am Anfang eines Anweisungsblockes. Die Deklaration beginnt mit dem Schlüsselwort static. Der Datentyp legt die Art des zu speichernden Wertes und den benötigten Speicherplatz fest. Der Name der Variablen ist frei wählbar. C++ - Einführung 06.05.15 Seite 56

Initialisierung static int summe = 0 ; static Datentyp Name = wert ; Sobald für eine Variable Speicherplatz reserviert wird, wird der Bereich mit einem x beliebigen Wert initialisiert. Um Fehler zu vermeiden, sollten statische Variablen wie Konstanten immer gleichzeitig deklariert und initialisiert werden. C++ - Einführung 06.05.15 Seite 57