Mein Buch definiert einen Ausdruck als "eine Programmieranweisung, die einen Wert hat" und ein Literal als "ein Stück Daten, die direkt in den Quellcode eines Programms geschrieben werden", aber ich habe immer noch Schwierigkeiten, zwischen den beiden zu unterscheiden. Zum Beispiel, ist 3 + 3 ein Literal UND ein Ausdruck oder nur ein Ausdruck? Warum?Worin besteht in C++ der Unterschied zwischen einem Ausdruck und einem Literal?
int number = 2+2;
Ist diese ganze Aussage ein Ausdruck oder genau der richtige Wert? Warum? Diese ganze Aussage hat einen Wert von 4, also ist die ganze Aussage sicherlich ein Ausdruck?
Meiner Meinung nach beinhaltet ein Ausdruck normalerweise Operatoren und ein Literal beinhaltet ein einzelnes Stück von Daten wie 4, "Hallo", "A" usw. Ich verstehe auch, dass ein Literal ein Ausdruck sein kann wegen unärer Operatoren wie als - oder +. Habe ich recht, wenn ich das denke?
http://en.cppreference.com/w/cpp/language/expressions#Literals – user657267
Nein. Eine Aussage ** ist nicht ** ein Ausdruck. Bemerkenswerterweise gibt es eine Trennung zwischen lvalues und rvalues in C++, wie sie durch die Verwendung von rvalue-Referenzen, wie in C++ 11 eingeführt, beleuchtet werden. – VermillionAzure
Die Definitionen sind im Fall von C++ beide falsch. Erzähl uns das Buch, damit wir es vermeiden können. – EJP