So, in diesem Abschnitt kommen wir jetzt zu Kapitelanweisungen. Das sind letztendlich
die Strukturen in einem C-Programm, mit denen man die Abläufe beschreibt. Eine Anweisung
kann ein Ausdruck sein, es kann ein Blog sein, eine Zusammenfassung mehrerer Ausdrücke,
oder es kann eine Kontrollstruktur sein. Ich habe hier mal einfach drei Beispiele dafür.
a ist gleich b plus c, ist ein einfacher Ausdruck. Oder hier durch die geschweiften Klammern
eingeschlossen zwei Ausdrücke, nämlich a ist gleich b plus c und x ist gleich 5. Und hier
das dritte, die Kontrollstruktur, if x ist gleich 5, then a ist gleich 3. Also letztendlich sind das
Dinge, die Sie aus anderen Programmen hier sprechen, so wie Sie es hier vor sich finden,
bereits kennen. Schauen wir uns die Ausdrücke mal noch ein bisschen genauer an. Das ist ein
Kapitel, das habe ich jetzt in diesem Jahr wieder reingefügt. Das ist eigentlich schon uralt,
aber ich habe festgestellt, doch ein paar Unterschiede gibt es dann doch zu solchen
zu Sprachen wie beispielsweise Java und deswegen möchte ich das Ganze noch mal kurz zusammenfassen.
Aber ich gehe da sehr sehr schnell jetzt drüber. Also ein Ausdruck ist letztendlich jede gültige
Kombination von Operatoren, Werten und Variablen. Wichtig bei der ganzen Geschichte ist die Reihenfolge
der Auswertung. Es gibt Vorrangregeln für Operatoren und die legen die Reihenfolge fest,
in denen die Ausdrücke abgearbeitet werden. Also das ist ein klassisches Punkt vor Strich,
dass also wenn Sie eine Multiplikation und eine Addition haben, dass dann erst die
Multiplikation ausgeführt wird und anschließend mit dem Ergebnis dann eine Addition. Wenn die
Vorrangregeln keine eindeutige Aussage geben und das gibt es in manchen Fällen, dann ist die Reihenfolge
undefiniert. Das ist natürlich der Worst Case, denn dann kann es sein, dass der eine C-Compiler
in einem anderen Code erzeugt wie ein anderer C-Compiler und sich das Programm dann einfach
unterschiedlich verhält. Im Zweifelsfall ist es immer gut mit Klammern zu arbeiten. Damit können
Sie jegliche Vorrangregeln überstimmen bzw. wenn es nicht eindeutig ist, dann auch die
Vorrangregeln wirklich festlegen. Unabhängig davon bleibt es dem Compiler aber trotzdem freigestellt,
Teilausdrücke in einer möglichst effizienten Folge auszuwerten und unter Umständen auch wenn das
Ergebnis des Gesamtausdrucks schon feststeht, einen Teil der Auswertung einfach wegzulassen.
Wir werden gleich doch sehen, wie das geht und warum das so ist. Das erste wäre der
Zuweisungsoperator, also Zuweisung eines Werts an eine Variable. Das ist simpel, A gleich 20,
wie hier in diesem Beispiel. Arithmetische Operatoren, die für alle Int- und Floatwerte
erlaubt sind, also damit auch für Characters, weil Characters sind ja auch Integers, also Addition,
Subtraktion, Multiplikation, Division, Modulooperation und dann die Vorzeichenoperatoren,
das unehre Minus, also minus drei als negative Zahl, das unehre Plus als positives Vorzeichen,
was man normalerweise weglässt, weil plus drei ist nichts anderes wie drei. Ein Beispiel für
so einen Ausdruck mit solchen Operatoren wäre dann so was wie A ist gleich minus fünf plus sieben
mal zwanzig, minus acht und hier haben wir natürlich den Vorrang sieben mal zwanzig wird
zuerst berechnet wegen der Vorrangregel für die multiplikativen Operatoren und dann wird die
Addition und die Subtraktion durchgeführt. Also das sollte jetzt wenig überraschend sein.
Dann gibt es spezielle Zuweisungsoperatoren, die plus oder die ob ist gleich Operatoren,
also so irgendetwas wie hier in diesem Beispiel A plus gleich 24 ist nichts anderes wie A ist
gleich A plus 24. Ich glaube da muss ich auch nicht im Einzelnen darauf eingehen. Diese Kombination
mit dem ist gleich ist im Prinzip für eine Vielzahl von Operatoren, die ich hier aufgeführt habe,
möglich. Die Vergleichsoperatoren sind eigentlich auch relativ wenig überraschend, aber haben doch
eine kleine Besonderheit. Also es gibt die normalen kleiner, kleiner gleich, größer, größer gleich
Operatoren. Der ist gleiche Operator, da muss man immer wieder darauf hinweisen, es sind zwei
Gleichheitszeichen. Ein einzelnes Gleichheitszeichen ist was anderes. Einzelnes Gleichheitszeichen
ist eine Zuweisung. Ja und dann natürlich noch der Ungleichsoperator. Das besondere bei den
Vergleichsoperatoren ist, dass der Ergebnis Typ nicht wie in vielen anderen Programmiersprachen
ein Wahrheitswert ist, sondern er ist ein Integer. Wenn das Ergebnis der ganzen Operation war ist,
dann kommt da eins bei raus und wenn das Ergebnis falsch ist, kommt Null bei raus. Das heißt also,
wenn sie Wert A haben, A ist jetzt vielleicht minus 8, hatten wir glaube ich jetzt auf der Folie
Presenters
Zugänglich über
Offener Zugang
Dauer
00:21:35 Min
Aufnahmedatum
2020-04-27
Hochgeladen am
2020-04-27 14:06:20
Sprache
de-DE