Was ist ein Ausdruck, was eine Anweisung? Und wann ist es wichtig, sie Unterscheiden zu können?
-
Frage steht im Topic.
Ich höre die Begriffe immer wieder, weiß aber nicht, was sie jeweils genau bezeichnen. Deshalb ist es mir auch nicht klar, wie wichtig es ist, zwischen ihnen unterscheiden zu können.
-
〈expression 〉 ::=
〈assignment-expression 〉 |
〈expression 〉 "," 〈assignmentexpression 〉.〈statement 〉 ::=
〈labeled-statement 〉 |
〈expression-statement 〉 |
〈compound-statement 〉 |
〈selection-statement 〉 |
〈iteration-statement 〉 |
〈jump-statement 〉 |
〈declaration-statement 〉 |
〈try-block 〉.〈expression-statement 〉 ::=
[〈expression 〉] ";".http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht78Ht/c++_grammatik_de
-
Vertexwahn schrieb:
[...]
Ich bezweifle, dass das wirklich hilfreich ist, zumal nicht einmal der Link funktioniert.
Anweisungen nennt man in anderen Programmiersprachen oft Befehle. Damit teilst du dem Programm mit, was es zu tun hat. In C++ schreibt man nach einer Anweisung ein Semikolon ;.
Ausdrücke dagegen sind Kombinationen von Werten, Funktionen und Operatoren und ergeben zusammen wieder einen Wert. Literale sind Ausdrücke, arithmetische Operationen z.B. auch. Ausdrücke sind R-Values, können also auf der rechten Seite einer Zuweisung stehen.
Ein einfaches Beispiel für Zahlen:
float func() { return 2.7f; // return 2.7; ist eine Anweisung (gib 2.7f zurück). } int main() { int i = 5; // Diese Zeile ist eine Anweisung (deklariere, definiere ein int i und weise den Wert 5 zu) // 5 ist dabei ein Ausdruck. int j = 7*3 + 44/2 - func(); // 7*3 + 44/2 - func() ist ein Ausdruck, die ganze Zeile eine Anweisung func(); // Anweisung: rufe func() auf - aber auch Ausdruck, nämlich 2.7f }