32
Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme • Unterscheidung Compiler und Linker Entwicklungsumgebung zur Erstellung von Computerprogrammen Aufbau eines einfachen Programms (Eingabe, Verarbeitung, Ausgabe) Dokumentation von Programmen (Struktogramme) Kontrollstrukturen (Verzweigungen, Schleifen) Einsatz von Funktionen Datenstrukturen (Felder) Nutzung von Zeigern Testen von Programmen mit geeigneten Hilfsmitteln

Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Embed Size (px)

Citation preview

Page 1: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Gliederung des Inhalts

Einführung in die Planung und Entwicklung kleiner Computerprogramme

• Unterscheidung Compiler und Linker• Entwicklungsumgebung zur Erstellung von

Computerprogrammen• Aufbau eines einfachen Programms (Eingabe,

Verarbeitung, Ausgabe)• Dokumentation von Programmen (Struktogramme)• Kontrollstrukturen (Verzweigungen, Schleifen)• Einsatz von Funktionen • Datenstrukturen (Felder)• Nutzung von Zeigern• Testen von Programmen mit geeigneten Hilfsmitteln• Fehlersuche in selbsterstellten Programmen

Page 2: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Sprachbeschreibung

C++ basiert auf dem ANSI-Standard (American National Standards Institute)

• Darstellung der Sprache ist Plattform unabhängig• Hybridsprache (C plus OOP- objektorientierte Programmiersprache)

C++ ist von Bjarne Stroustrup bei AT&T entwickelt(um. 1980)

Page 3: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Erstellen eines C++-Programms

QuelldateiQuelldatei

ObjektdateiObjektdatei

ausführbare Datei

ausführbare Datei

Standard-bibliothek

Standard-bibliothek

weitere Bibliotheken,Objektdateien

weitere Bibliotheken,Objektdateien

Header-Dateien

Header-Dateien

Editor

Compiler

Linker

Page 4: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Aufbau eines Programms

4

#include <iostream>//Header-Dateien

int main ()

{

Ausführungen des Programms

}

}Funktionsblock

Funktionsname

Beginn der Funktion

Ende der Funktion

Typ der Funktion

Präprozessor-Anweisungen

Page 5: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Beispielprogramm

5

#include <iostream>

using namespace std;

int main(){

cout << "Viel Spass mit c++!!„ << endl;return 0;}

Befehl „Ausgeben auf den Bildschirm“: cout<<Variable_1<<Variable_2<<...Variable_n; cout<< „Beliebiger Text“;

Befehl „Ausgeben auf den Bildschirm“: cout<<Variable_1<<Variable_2<<...Variable_n; cout<< „Beliebiger Text“;

Page 6: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Erweiterung des Beispielprogramms

6

Lassen Sie folgendes auf dem Bildschirm ausgeben:

C unterscheidet zwischen Groß- und Kleinschreibung.

Die Programmausführung beginnt bei der main-Funktion.

Geschweifte Klammern markieren die Funktionsgrenze.

Ein Semikolon markiert das Ende einer Anweisung.

Page 7: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Elementare Datentypen

7

• Verschiedene Daten werden im Programm verarbeitet z. B. Zeichen, Ganzzahlen oder Gleitpunktzahlen

• diese werden unterschiedlich bearbeitet und gespeichert

• ein Datentyp bestimmt:1. die Art der internen Darstellung2. die Größe des zu benötigten Speicherplatzes

• der Compiler kann leichter Fehler erkennen

Page 8: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Elementare Datentypen

8

Gleitpunktzahlen

long double

double

float

Elementare Datentypen*

Ganzzahlen short

int

long

charZeichen

Wahrheitswerte bool

*ohne void

Page 9: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Schreibkonventionen in C++

bei Namen von Variablen, Funktionen, Klassen und Makronamen muss folgendes beachtet werden:

• englische Alphabet• deutsche Umlaute dürfen nur in Kommentaren oder

Zeichenketten vorkommen• Ziffern 0 bis 9 (dürfen nicht am Anfang stehen)• Unterstrich „_“• Länge nicht vorgegeben (ANSI min. 31 Zeichen)

Es wird zwischen Groß- und Kleinschreibung unterschieden!!!

Es wird zwischen Groß- und Kleinschreibung unterschieden!!!

Page 10: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Elementare Datentypen - Ganzzahlen

10

Typ Größe Zahlenbereich

char 8 Bit = 1 Byte -128 bis 127

unsigned char 8 Bit = 1 Byte 0 bis 255

short 16 Bit = 2 Bytes -32.768 bis 32.767

unsigned short 16 Bit = 2 Bytes 0 bis 65.535

int 32 Bit = 4 Bytes -2.147.483.648 bis 2.147.483.647

unsigned int 32 Bit = 4 Bytes 0 bis 4.294.967.295

long 32 Bit = 4 Bytes -2.147.483.648 bis 2.147.483.647

unsigned long 32 Bit = 4 Bytes 0 bis 4.294.967.295

Page 11: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Elementare Datentypen - Gleitpunktzahlen

11

Typ Größe Zahlenbereich Genauigkeit

float 32 Bit = 4 Bytes 1,18E-38 bis 3,40E38 7 Stellen

double 64 Bit = 8 Bytes 2,23E-308 bis 1,79E308 15 Stellen

long double80 Bit = 10 Bytes

3,37E-4932 bis 1,18E4932 18 Stellen

Page 12: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Operatoren - Grundsätzliches

12

In C/C++ stehen u. a. folgende Gruppen von Operatoren zur Verfügung

• arithmetische Operatoren für die grundlegenden Rechenoperationen

• Vergleichsoperatoren zur Formulierung von Bedingungen

• logische Operatoren zur Verknüpfung von Einzelbedingungen zu einer komplexen Bedingung

Hinweis:Ähnlich der Regel „Punktrechnung vor Strichrechnung“ in der Mathematik, gibt es in C/C++ eine feste Reihenfolge bei Auswertung der einzelnen Operatoren in komplexeren Ausdrücken. Insgesamt gibt es in C/C++ 16 Prioritätsstufen (Rangfolge 1: höchste Priorität, Rangfolge 16: niedrigste Priorität).Bei Zweifeln hinsichtlich der Prioritäten der Operatoren ist es ratsam, zusätzliche Klammern zu setzen.

Page 13: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Beispielprogramm „Summe bilden“

13

Schreiben Sie ein Programm, das zwei Fließkommazahlen über die Tastatur einliest und dann die Summe bildet und ausgibt.

1. Schritt Struktogramm

2. Schritt Programmieren

Ergänzungen:- Differenz, Produkt und Quotient

[griech.], Darstellung des Ablaufs eines Algorithmus bzw. Programms mit speziellen Symbolen. (c) Meyers Lexikonverlag.

Befehl „Einlesen über die Tastatur“: cin>>Variable_1>>Variable_2>>...Variable_n;Befehl „Einlesen über die Tastatur“: cin>>Variable_1>>Variable_2>>...Variable_n;

Page 14: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Beispiel: Summe bilden

14

Summe bildenAusgabe: Es wird die Summe zweier Zahlen gebildet

Ausgabe: Bitte geben Sie zwei Zahlen ein.

Eingabe: Zahl_1

Eingabe: Zahl_2

Anweisung: (Summe = Zahl_1 + Zahl_2)

Ausgabe: Die Summe ist ...

Ausgabe: Vielen Dank!!

Struktogramm:

Page 15: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Arithmetische Operatoren

15

Operator Rangfolge Beispiel Operation

+ 2 +a Wert des Operanden wird nicht verändert

- 2 -a Wert des Operanden wird negiert

+ 5 a + b Addition

- 5 a – b Subtraktion

* 4 a * b Multiplikation

/ 4 a / b Division

% 4 a % b Modulo (Restbestimmung)

= 15 a = b Zuweisung

( ) 1 (a+b)*c Klammersetzung

Arithmetische Operatoren dienen der Durchführung grundlegender Rechenoperationen.

Page 16: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Vergleichsoperatoren

16

Operator Bedeutung Rangfolge Beispiel

< kleiner als 7 a < b

<= kleiner oder gleich 7 a <= b

> größer als 7 a > b

>= größer oder gleich 7 a >= b

== gleich 8 a == b

!= ungleich / verschieden von 8 a != b

Vergleichsoperatoren werden benötigt, um Bedingungen zu formulieren.

Page 17: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Logische Operatoren

17

Operator Bedeutung Rangfolge Beispiel

! Negation 2 !a

&& logisches UND 12 a && b

|| logisches ODER 13 a || b

& bitweises UND 9 a & b

| bitweises ODER 11 a | b

^ bitweises XOR 10 a ^ b

<< bitweises Linksschieben 6 a << b

>> bitweises Rechtsschieben 6 a >> b

~ Einerkomplement 2 ~a

Sollen mehrere Bedingungen berücksichtigt werden, so können diese durch logische Operatoren miteinander kombiniert werden.

Page 18: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

if-else

18

Befehl „Verzweigungen mit if-else“:if (Ausdruck) z. B. a<b

Anweisung;else

Anweisung;

Struktogramm:

Befehl „Verzweigungen mit if-else“:if (Ausdruck) z. B. a<b

Anweisung;else

Anweisung;

Struktogramm:

Anweisung1 Anweisung2

if (Ausdruck) true false

Page 19: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Taschenrechner

19

Taschenrechner

Ausgabe Allgemeine Infos

Ausgabe: beliebige Taste zum Starten

Ausgabe: Rechenoperation eingeben (z. B. 3 * 7)

Eingabe: Zahl1, Operand, Zahl2

Operand ='+'ja nein

Ausgabe: Summe

Operand ='-'ja nein

Ausgabe: Differenz

Operand ='*'ja nein

Ausgabe:Produkt

Operand ='/'ja nein

Ausgabe:Teilung

Ausgabe: FalscheOperation

...

Page 20: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Schleifen I – Übersicht

20

Schleifentypen

geschlossene Schleifen offene Schleifen

kopfgesteuert fußgesteuert

Der Programmierer weiß bereits beim

Programmieren wie oft die Schleife durchlaufen

werden soll.

Wie oft die Schleife durchlaufen wird, ist nicht

zahlenmäßig festgelegt, sondern hängt z. B. von Benutzereingaben ab.

Page 21: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Schleifen II – geschlossene Schleife

21

C++ - Quellcodeshort main( )

{

short max_zahl, z;

cout << “Wie weit soll ich zaehlen?“;

cin >> max_zahl;

for (z = 1; z <= max_zahl; z++)

{

cout << “z = “ << z << endl;

}

cout << “Schleife beendet, z= “ << z;

getch();

return 0;

} //Ende von main

Struktogramm

Start

Variablen: short max_zahl, z

Ausgabe: "Wie weit soll ich zählen? "

Eingabe: max_zahl

für z = 1 bis max_zahl

Ausgabe: "z =" z

Ausgabe: "Schleife beendet, z = " z

getch()

Ende

Page 22: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Schleifen III – kopfgesteuerte offene Schleife

22

C++ - Quellcodeshort main( )

{

short zahl = 0, i = 1;

cout << “Bitte eine Zahl eingeben: “;

cin >> zahl;

while(zahl < 100) //Schleifenkopf mit

{ //Bedingung

zahl = zahl + 1;

cout << i << “. Schleifendurchlauf “;

cout << “zahl “ << zahl << endl;

i++;

} //Schleifenfuß ohne Bedingung

cout << “Schleife beendet, zahl= “ << zahl;

getch();

} //Ende von main

Struktogramm

Start

Variablen: short zahl=0, i=1

Ausgabe: "Bitte eine Zahl eingeben: "

Eingabe: zahl

Solange (zahl < 100)

zahl = zahl + 1

Ausgabe: i ". Schleifendurchlauf"

Ausgabe: "zahl = " zahl

i = i + 1

Ausgabe: "Schleife beendet, zahl = " zahl

getch()

Ende

Page 23: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Struktogramm

Start

Variablen: short zahl=0, i=1

Ausgabe: "Bitte eine Zahl eingeben: "

Eingabe: zahl

Solange (zahl < 100)

zahl = zahl + 1

Ausgabe: i ". Schleifendurchlauf"

Ausgabe: "zahl = " zahl

i = i + 1

Ausgabe: "Schleife beendet, zahl = " zahl

getch()

Ende

Schleifen IV – fußgesteuerte offene Schleife

23

C++ - Quellcodeshort main( )

{

short zahl = 0, i = 1;

cout << “Bitte eine Zahl eingeben: “;

cin >> zahl;

do //Schleifenkopf ohne Bedingung

{

zahl = zahl + 1;

cout << i << “. Schleifendurchlauf “;

cout << “zahl “ << zahl << endl;

i++;

} while(zahl < 100); //Schleifenfuß mit Bed.

cout << “Schleife beendet, zahl= “ << zahl;

getch();

} //Ende von main

Page 24: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Präprozessor, Compiler und Linker

24

Mit Hilfe des include-Befehls werden sogenannte Header-Dateieneingefügt. Der Präprozessor (Übersetzungsprogramm) kopiert dieHeader-Datei in den Quellcode hinein (vor der Compilierung). In ihr stehen Informationen zur Syntax von Befehlen, so das der CompilerFehler erkennen kann. Neben den Quelltextergänzungen entfernt der Präprozessor auch alle Kommentare, Leerzeilen und Leerzeichen aus dem Quellcode. Der Compiler übersetzt dann den Quellcode in maschinenlesbaren Objektcode (.obj Datei). Syntaktische Fehler im Programm werdenvom Compiler angezeigt und müssen korrigiert werden.Dem Linker obliegt jetzt die Aufgabe, diese Objektcode-Dateien sowie den Objektcode der benutzten Bibliotheksfunktionen (.lib ) in eine Programmdatei (.exe unter Windows) zusammenzubinden.

Page 25: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Namensbereiche

25

Um Namenskonflikte bei globalen Bezeichnern auszuschalten , siehtC++ die Bildung von Namensbereichen vor. Innerhalb eines Namens-bereichs können Bezeichner verwendet werden, ohne Rücksicht darauf, ob sie bereits außerhalb definiert wurden. Mit Hilfe des Schlüsselwortes namespace kann der Programmierersomit den globalen Gültigkeitsbereich in Unterbereiche aufteilen.

Page 26: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Bibliothek

26

Mit Bibliothek bezeichnet man in Programmiersprachen eine Sammlungvon Funktionen und Konstanten, die nicht zu einem Programm selbst gehört, sondern diesem und zumeist auch anderen Funktionen und Konstanten zur Verfügung stellt. In der Regel sind Bibliotheken für einenbreiten Einsatz konzipiert und sollten daher möglichst flexible Funktionen

enthalten und vor allem gut dokumentierte Schnittstellen anbieten. Bei jedem C++-Compiler sollten die C++-Standardbibliotheken vorhanden sein, die z.B. einige abstrakte Datenstrukturen wie Listen u.ä. implemen-tieren. Zusätzlich gibt es oft Bibliotheken, die den Zugriff auf Hardware, graphische Oberfläche oder andere Teile einer Plattform wesentlich vereinfachen. Bibliotheken werden i.d.R. in schon compilierter Form genutzt, sie werden selten mit einem Projekt compiliert und häufig liegt der Quelltext auch gar nicht vor (Urheberschutz).

Page 27: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Definition, Deklaration und Initialisierung

27

Variablen dürfen in einem Programm außerhalb oder innerhalb vonFunktionen definiert werden. Der Unterschied ist folgender:Eine außerhalb jeder Funktion definierte Variable ist global, d. h. in allen Funktionen verwendbar.Eine innerhalb einer Funktion definierte Variable ist lokal, d. h. nur in derselben Funktion verwendbar.

Lokale Variablen werden normalerweise unmittelbar hinter einer sich öffnenden Klammer – am Beginn einer Funktion – definiert.Sie können aber überall dort stehen, wo eine Anweisung erlaubt ist.

Page 28: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Definition, Deklaration und Initialisierung

28

...float zahl, a; //Definition und Deklaration globaler Variablen

int main (){

int i; //Definition und Deklaration lokaler Variablen

short c = 0; //Definition, Deklaration und Initialisierung einer //lokalen Variablen

i = 100; // Initialisierung von i...

}

Initialisierung bedeutet einer Variablen eine Startwert zu geben. Wird es nicht gemacht, so steht bei einer lokalen Variablen irgendein Wert. (z. B. c = c +1 (Zähler) wird c nicht initialisiert so stehtnachdem ersten Durchlauf keine 1 in c.)

Page 29: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Zahlenraten

29

Programmieren Sie folgende Aufgabenstellung: PC soll eine Zahl zwischen 1 und 100 erraten

Vorgehensweise:1. User soll sich eine Zahl zwischen 1 und 100 merken2. PC gibt eine Zahl aus und fragt den User...3. Wenn die Zahl nicht erraten wurde gibt der PC eine weitere Zahl

aus und fragt wieder...4. Vielen Dank für das Spiel5. Möchten Sie ein weiteres Spiel?6. (Ergänzungen: Programm gibt die Anzahl der Versuche aus und

Programm merkt ob der User schummelt)

Erstellen Sie als erstes ein Struktogramm mit allen wichtigen „Befehlen“ (Variablendefinitionen, -deklarationen, -initialisierungen, mathematische Operationen usw. )

Page 30: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Zeiger I#include <iostream.h>

void main(void){ int zahl; // Integer Variable int* pZeigerAufZahl; // Zeiger auf Integer-Variable

pZeigerAufZahl = &zahl; zahl = 5;

cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

zahl = 10; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

*pZeigerAufZahl = 20; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

cout << &pZeigerAufZahl;

}

BildschirmausgabeBildschirmausgabe50x4cc723e85

100x4cc723e8 10

200x4cc723e8 20

0x4cc723e4

Adressoperator

Dereferenzierungs-operator

30

Page 31: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Zeiger II#include <iostream.h>

void main(void){ int zahl; int* pZeigerAufZahl;

pZeigerAufZahl = &zahl; zahl = 5;

cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

zahl = 10; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

*pZeigerAufZahl = 20; cout << zahl; cout << pZeigerAufZahl; cout << *pZeigerAufZahl;

cout << &pZeigerAufZahl;

}

zahl pZeigerAufZahlAdresse

0x4cc723e8Inhalt

?Adresse

0x4cc723e4Inhalt

?

Speicherinhalte

Adresse0x4cc723e8

Inhalt5

Adresse0x4cc723e4

Inhalt0x4cc723e8

Adresse0x4cc723e8

Inhalt10

Adresse0x4cc723e4

Inhalt0x4cc723e8

Adresse0x4cc723e8

Inhalt20

Adresse0x4cc723e4

Inhalt0x4cc723e8

31

Page 32: Gliederung des Inhalts Einführung in die Planung und Entwicklung kleiner Computerprogramme Unterscheidung Compiler und Linker Entwicklungsumgebung zur

Operatoren – Grundsätzliches

32

In C/C++ stehen u. a. folgende Gruppen von Operatoren zur Verfügung

• arithmetische Operatoren für die grundlegenden Rechenoperationen

• Vergleichsoperatoren zur Formulierung von Bedingungen

• logische Operatoren zur Verknüpfung von Einzelbedingungen zu einer komplexen Bedingung

• Zuweisungsoperatoren

• Postfix – Operatoren

• Zeiger – Operatoren

• diverse Kategorien

Hinweis:Ähnlich der Regel „Punktrechnung vor Strichrechnung“ in der Mathematik, gibt es in C/C++ eine feste Reihenfolge bei Auswertung der einzelnen Operatoren in komplexeren Ausdrücken. Insgesamt gibt es in C/C++ 16 Prioritätsstufen (Rangfolge 1: höchste Priorität, Rangfolge 16: niedrigste Priorität).Bei Zweifeln hinsichtlich der Prioritäten der Operatoren ist es ratsam, zusätzliche Klammern zu setzen.