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 ...
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