Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - C (C89 und C99) ::  x++ und ++x?  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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.
C/C++ Forum :: FAQ - C (C89 und C99) ::  x++ und ++x?  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.