hierarchia działania r=c++==--a+3

0

Wiem że to dla niektórych proste ale mam zagadkę

int n=5,p=10,q=5,r=1;
r=p--==++q+4;
 

Czy ktoś byłby w stanie wytłumaczyć mi co tutaj się dzieje? Może z użyciem nawiasów i jakoś krokowo? Czym się różni zapis ++q od q++ na tym przykładzie?

0

Podglądnij sobie plik z assemblerem. W opcjach kompilatora gdzieś to jest żeby generowało. Tam masz wszystko ładnie czarno na białym.

2

++q oznacza zwiększ wartość o jeden i zwróć NOWĄ wartość
q++ oznacza zwiększ wartość o jeden i zwróć STARĄ wartość
nigdy nie rób tak:

a=q++ + q++

bo wynik takiej operacji dla różnych kompilatorów będzie różny! Nadużywanie skrótowców jest wysoce niewskazane.

Twój kod jest rónwoważny temu:

int n=5,p=10,q=5,r=1;
++q;
// tu q=6
r=(p==(q+4));
p--; //p = 9
// q= 6; p = 9; r=1 (true) 
0

Dziękuję wam, teraz stało się to dla mnie o dużo jaśniejsze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1