21.11.2013 Aufrufe

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

10.4 Lokale Variablen<br />

Auf lokale Variablen, (Argumente <strong>und</strong> <strong>in</strong>nerhalb des Funktionskörpers def<strong>in</strong>ierte Variablen) kann<br />

von ausserhalb der Funktion nicht zugegriffen werden. Die Variablen werden zudem ungültig <strong>und</strong><br />

verlieren ihren Inhalt, sobald <strong>die</strong> Funktion beendet wird. (Ausnahme: statische (static) Variablen<br />

behalten ihren Inhalt.)<br />

Innerhalb von Funktionen können ke<strong>in</strong>e weiteren Funktionen def<strong>in</strong>iert werden, Funktionslokale<br />

Funktionen s<strong>in</strong>d somit nicht möglich.<br />

10.5 Rückgabewert e<strong>in</strong>er Funktion ('Ergebnis')<br />

Mit dem Befehl return wird <strong>die</strong> Funktion beendet, <strong>und</strong> der angegebene Wert als Ergebnis des<br />

Funktionsaufrufes zurückgeliefert. <strong>E<strong>in</strong>e</strong> Funktion kann mehrere return Statements enthalten, e<strong>in</strong>e<br />

Funktion ohne Rückgabewerte darf nur return-Anweisungen ohne Wert aufweisen, oder kann<br />

auch gar ke<strong>in</strong> return Statement aufweisen. Sobald der Programmlauf auf e<strong>in</strong> return stösst,<br />

wird <strong>die</strong> Funktion beendet. <strong>E<strong>in</strong>e</strong> Funktion mit Rückgabewert muss m<strong>in</strong>destens e<strong>in</strong> Returnstatement<br />

aufweisen, <strong>und</strong> jedes return muss e<strong>in</strong>en Rückgabewert aufweisen.<br />

<strong>in</strong>t Maximum1(<strong>in</strong>t a, <strong>in</strong>t b)<br />

{<br />

<strong>in</strong>t Resultat = 0;<br />

}<br />

if (a > b) {<br />

Resultat = a;<br />

} else {<br />

Resultat = b;<br />

}<br />

return Resultat;<br />

<strong>in</strong>t Maximum2(<strong>in</strong>t a, <strong>in</strong>t b)<br />

{<br />

if (a > b) {<br />

return a;<br />

} else {<br />

return b;<br />

}<br />

}<br />

Auch möglich, aber weniger verständlich:<br />

<strong>in</strong>t Maximum3(<strong>in</strong>t a, <strong>in</strong>t b) { return (a > b) ? a : b; }<br />

10.6 Spezielle Funktionen<br />

<strong>E<strong>in</strong>e</strong> Funktion <strong>die</strong> nichts zurückliefert (<strong>in</strong> anderen Sprachen als Prozedur oder Unterprogramm bezeichnet)<br />

wird als Funktion <strong>die</strong> void zurückliefert def<strong>in</strong>iert:<br />

void Pr<strong>in</strong>tStar(<strong>in</strong>t n) /* Zeichnet e<strong>in</strong>e L<strong>in</strong>ie von Sternen */<br />

{<br />

while (n-- > 0) {<br />

putchar('*');<br />

}<br />

}<br />

<strong>E<strong>in</strong>e</strong> Funktion, <strong>die</strong> ke<strong>in</strong>e Argumente hat, besitzt entsprechend e<strong>in</strong>e leere Parameterliste:<br />

double CalculatePi(void) /* Berechnet Pi */<br />

{<br />

return 22.0/7.0; /* Algorithmus kann noch verbessert werden */<br />

}<br />

Flaeche = Radius * Radius * CalculatePi(); /* Aufruf der Funktion */<br />

Analog s<strong>in</strong>d auch Funktionen möglich, <strong>die</strong> weder Argumente, noch Rückgabewerte besitzen.<br />

Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 41/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!