| Autor |
Nachricht |
volkard
Moderator
Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
|
volkard Moderator
15:10:00 10.10.2001 Titel: |
|
Zitieren |
| Zitat: | Original erstellt von Kauz01:
Ich würde micht versuhcen demn Ausdruck --x einen WErt zuzuweisen [img]images/smiles/icon_biggrin.gif[/img] |
Warum?
--x ist doch ein lvalue.
--x-- geht deshalb nicht, weil rechte Operatoren meistens vor linken ausgewertet werden.
--(x--) geht also net.
Bei (--x)-- seh ich kein Problem. |
_________________ http://www.venganza.info/
plonk fürs Forum v1.02
|
|
 |
Werbeunterbrechung
|
|
 |
volkard
Moderator
Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
|
volkard Moderator
15:17:00 10.10.2001 Titel: |
|
Zitieren |
| Zitat: | Original erstellt von Shade Of Mine:
--x == x-- -1;
ich wuerde sagen nein [img]images/smiles/icon_wink.gif[/img]
|
Ich auch.
Ich wollte ja nur
--x == x-- -1;
compilieren und dann schauen, ob ich --x durch (x-- - 1)
ersetzen kann und es kommt das gleiche raus. |
_________________ http://www.venganza.info/
plonk fürs Forum v1.02
|
|
 |
Shade Of Mine
Moderator
Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 17739
|
Shade Of Mine Moderator
15:27:00 10.10.2001 Titel: |
|
Zitieren |
dann sind wir ja der selben meinung, volkard [img]images/smiles/icon_wink.gif[/img] |
_________________ A language that doesn't affect the way you think about programming is not worth knowing.
|
|
 |
Kauz01
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.09.2001
Beiträge: 794
|
Kauz01 Mitglied
15:29:00 10.10.2001 Titel: |
|
Zitieren |
@virtual volkard
Weißt du ob bei "--x == x-- -1;" die Evaluationsreiehnfolge festgelegt ist?
Ob --x das gleiche wie x-- -1 ist kriegst du auf diese Art aber nicht raus!
Bsp.:
int x = 2;
--x == x-- - 1;
// Hier ist x sicher == 0 |
_________________ Viele Leute glauben zu denken, dabei ordnen sie lediglich ihre Vorurteile neu.
(Williams James)
|
|
 |
mauerranger
Mitglied
Benutzerprofil
Anmeldungsdatum: 04.10.2001
Beiträge: 75
|
mauerranger Mitglied
16:28:00 10.10.2001 Titel: |
|
Zitieren |
also wenn x 2 ist dann ist --x =1 !! weil das das selbe ist wie x-- !!
nur wenn das -- vor x steht wird sie als erstes aus gewertet ! wenn -- nach x steht wirds erst als letztes ausgewertet!
int a=10;
int b;
b=a++;
hier ist a 11 und b 10 weil b erst der wert von a zugewiesen wird und dann wird a inkrementiert !
bei b=++a;
wird erst a inkrementiert und dann wird der wert von dem dann inkrementierten a b zugewiesen !!! alost ist a 11 und b 11 !!
deshalb ist --x != x-- -1 !!
[ 10.10.2001: Beitrag editiert von: mauerranger ] |
_________________ Signatur ? Kann man das essen ?
|
|
 |
Kauz01
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.09.2001
Beiträge: 794
|
Kauz01 Mitglied
16:42:00 10.10.2001 Titel: |
|
Zitieren |
Nochmal ein kleiner Beitrag
int a1,b1,a2,b2;
a1 = b1 = 2;
a2 = a1-- - 1; // a2 == 1
b2 = --b1; // b2 == 1
Soweit gut?
a1-- - 1 == --b1 hat also den Wert true.
Aber
(--x == x-- -1 ) hat sicher den Wert false!
Begründung:
Eine Seite wird als erstes evaluiert. Soweit ich weiß ist hier keine Reihenfolge festgelegt. Damit wird der Wert von x verändert! Dann wird die zweite Seite evaluiert und der Wert von x nochmals verändert. Nach dem Statement ist also der Wert von x um 2 gesunken.
Weiter hat der als erstes ausgewertete Ausdruck einen Wert, der um 1 größer ist, als der zuletzt ausgewertete Ausdruck.
Einwände werden entgegengenommen. [img]images/smiles/icon_smile.gif[/img] |
_________________ Viele Leute glauben zu denken, dabei ordnen sie lediglich ihre Vorurteile neu.
(Williams James)
|
|
 |
Shade Of Mine
Moderator
Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 17739
|
Shade Of Mine Moderator
18:54:00 10.10.2001 Titel: |
|
Zitieren |
@kauz
genau dass haben doch volkard und ich schon festgestellt [img]images/smiles/icon_wink.gif[/img]
@mauerranger
ja, wir kennen die pre- und post incerement/decrement operatoren [img]images/smiles/icon_wink.gif[/img] |
_________________ A language that doesn't affect the way you think about programming is not worth knowing.
|
|
 |