Forum: Compiler & IDEs Was bedeutet %3 hinter der Variable ??


von Günter (Gast)


Lesenswert?

Hallo !
Kann mir jemand sagen was das " %3 " hinter test bedeutet ?

int test = 0;

test = ++test%3;

Danke !

von kosmonaut_pirx (Gast)


Lesenswert?

hallo,

modulo division.

bye kosmo

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

"%" ist der Modulo-Operator (Divisionsrest).

von xyz (Gast)


Lesenswert?

Und was macht die 3 ?
Und welchen Wert hat dann Test ?

von ... (Gast)


Lesenswert?


von xyz (Gast)


Lesenswert?

Tolle Antwort.
Wenn man selbst keine Ahnung nicht hat.

von Karl H. (kbuchegg)


Lesenswert?

xyz wrote:
> Und was macht die 3 ?

Wie, was macht die 3?
Die lungert da so rum. Bis eine
Modulo Division kommt und sie als
Operand missbraucht.

> Und welchen Wert hat dann Test ?

Der ganze Ausdruck hat undefiniertes Verhalten.
Aber es ging ja um den % und nicht um den Ausdruck
an sich.
In einem kompletten Ausdruck darf an eine Variable
nur einmal ein neuer Wert zugewiesen werden. In
  test = ++test;
passiert das aber 2-mal.

von xyz (Gast)


Lesenswert?

Aha, vielen Dank Herr Karl heinz.

von Jörg X. (Gast)


Lesenswert?

Das sind doch vöölig banale C-Grundlagen, das kan ndir jedes C-Buch 
erzählen: Stichworte Pre-Inkrement und Modulo, und Modulo 3 kann ja 
(meistens) sogar im Kopf ausrechnen)

hth. Jörg
ps.: bei unbekannten Wörtern hilft oft Wikipedia.de weiter ;)

von Florian (Gast)


Lesenswert?

Jetzt wollte ich gerade zusammenschreiben, dass das eigentlich doch 
definiert ist, aber beim Kompilieren mit -Wall erhielt ich eine Warnung. 
Die Diskussion gab es aber schon einmal auf der gcc-Mailinglist:

http://gcc.gnu.org/ml/gcc/2004-10/msg00024.html

von Florian (Gast)


Lesenswert?

... wie man doch manchmal dazulernt.

von Karl H. (kbuchegg)


Lesenswert?

Florian wrote:
> Die Diskussion gab es aber schon einmal auf der gcc-Mailinglist:

Diese Diskussion gibt es in jeder C oder C++ Newsgroup
in Abständen von 2 bis 3 Wochen immer wieder.
Es gab Zeiten, da konnte ich die relevanten Abschnitte
aus dem C-Standard im Schlaf zitieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.