Von Ausdrücke die Werte herauslesen
-
Hi,
Ich soll als Aufgabe aus Expression die Werte rauslesen, nur ist mir manchmal nicht klar wie man bestimmte Expression lesen soll.
Hab drei Beispiele bei dem ich Probleme habe, Werte richtig zu lesen
b=(bool)(x+17); x = 7; //Hier weiß ich nicht wie man b=(bool)(x+17) lesen soll?
int a[] = {7,14,21}; b = a[1] == 14; // Bei diesen Beispiel ist mir nicht klar ob das Ergebnis als Value richtig ist: int a[]=[7, 14, 21] , b=true oder ob ich bei value int a[] weglassen muss?
z=z+(int)b; b = (bool)(z + (int)b); //hier weiß ich nicht wie (int)b gemeint ist?
Vielen Dank schonmal für die kommenden Antworten

-
(int)b ist hier int(b)
b wird zu einem int gecastet.
-
dark0ni schrieb:
Hi,
Ich soll als Aufgabe aus Expression die Werte rauslesen, nur ist mir manchmal nicht klar wie man bestimmte Expression lesen soll.
Hab drei Beispiele bei dem ich Probleme habe, Werte richtig zu lesen
b=(bool)(x+17); x = 7; //Hier weiß ich nicht wie man b=(bool)(x+17) lesen soll?
int a[] = {7,14,21}; b = a[1] == 14; // Bei diesen Beispiel ist mir nicht klar ob das Ergebnis als Value richtig ist: int a[]=[7, 14, 21] , b=true oder ob ich bei value int a[] weglassen muss?
z=z+(int)b; b = (bool)(z + (int)b); //hier weiß ich nicht wie (int)b gemeint ist?
Vielen Dank schonmal für die kommenden Antworten

1. Hier wird x + 17 zu bool gecastet und dann b zugewiesen. Da es wie du selber gemerkt hast nicht so leserlich ist, gibt es dafür in C++ die neuen Casts wie in dem Fall static_cast<bool>( x + 17 ), wobei das auch implizit konvertiert wird ohne die Angabe.
2. Du Initialisierst das Array, es hat dann 3 Elemente( denke dran Indexes bei einem Array beginnen bei 0 )! Danach wird verglichen ob a[1]( also 14 ) gleich 14 ist und das Ergebnis( in dem Fall true ) wird dann b zugewiesen.
3. Zu z wird b addiert, welches wieder in int konvertiert wird. b wird dann z + b zugewiesen, was zuvor nach bool konvertiert wird. Zuvor wird das b zu int konvertiert.
Lg freeG
-
fr33g schrieb:
Da es wie du selber gemerkt hast nicht so leserlich ist, gibt es dafür in C++ die neuen Casts wie in dem Fall static_cast<bool>( x + 17 )
