Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Präzedenz/Reihenfolge der Operatoren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.07.2004, 21:05 Uhr
~iboT
Gast


Hallo,

ich hab da grad mal wieder Verständnisproblemchen..

z.B.

x=*(z++);

oder

x=*(++z);

oder

x=*z++;


Von der "Rangordnung" her müsste das ++ ja eigentlich stärker sein als das *
Aber wie hängt das damit zusammen ob das ++ nun vor oder nach z steht?
Wo sind da die Unterschiede?

Weil wenn ++, egal ob post oder präfix, auf der Wichtigkeitstabelle höher steht als das * würde das ja gar kein Unterschied machen?!

Wo ist mein Denkfehler??
Und was bedeuten dann die 3 Ausdrücke oben?

Danke schonmal :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.07.2004, 21:15 Uhr
Pablo
Supertux
(Operator)


Stell dir vor z ist ein char* mit z={'H', 'e', 'l', 'l', 'o', '\n'}

char x=*(z++) heißt, dass der Zeiger auf 'H' um eins inkrementiert wird, nachdem der Befehl ausgeführt wird. * gibt das aktuelle Zeichen auf das z zeigt, nämlich H. Danach zeigt z auf 'e'.

---------------------
char x=*(++z) heißt, dass de Zeiger auf 'H' um eins inkrementiert wird, bevor der Befehl ausgeführt wird. D.h. *(++z) ist 'e', weil bevor * das aktuelle Zeichen ausgibt, zeigt z nicht mehr auf 'H' sondern auf 'e'.

---------------------
x=*z++; ist äquivalent zu x=*(z++);
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 07.07.2004 um 21:20 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.07.2004, 12:54 Uhr
~iboT
Gast


Danke! Ich glaub ich hab kapiert um was es geht :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.07.2004, 20:49 Uhr
9ball



die klammern kannste weglassen, das ++ zählt immer den pointer hoch.
ausser du machst sowas: (*z)++
dann wird der wert hochgezählt, auf den der pointer zeigt. der pointer aber nicht
--
one for all and all for one

Dieser Post wurde am 09.07.2004 um 20:50 Uhr von 9ball editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: