modzelem
modzelem
113
  • Najlepsze
  • Wszystkie komentarze
Jacek12
Jacek12
63
@evolved: No to przecież jest dobrze
C = 0
C++ zwraca zero
C zwraca 1 ( ͡° ͜ʖ ͡°)
Sprytnie nadali taka a nie inną kolejność żeby pasowało do żartu
evolved
evolved
25
@modzelem: śmichłem

Woockashek
" ma nadal wartość 0;

i tu pada pytanie: a jak dzieje


@evolved: eh, coraz więcej amatorów pcha się do zabawy.... Miksowanie postinkrementacji z dostępem do tej zmiennej w jednym expression to najczęściej po prostu tzw undefined behaviour. Postinkrementacja gwarantuje inkrementacje zmiennej po ewaluacji całego expression:
odysjestem
@modzelem: guilty kek
evolved
@Jacek12: no właśnie nie do końca, zależy jaką operację wykonujesz. Bo co ciekawe (a ten przypadek uprzednio sprawdziłem) jak wyprintujesz sobie je w tej kolejności, to oba wyrażenia zwrócą 0. Na odwrót już zadziała tak jak piszesz. A powyższe pytanie interpretować można różnie.
norbert108
@evolved: tak działa postinkrementacja. Najpierw używasz wartości a potem dodasz 1.
evolved
Czemu na odwrót?

@Gl1n4: ano temu: https://www.w3schools.com/cpp/trycpp.asp?filename=demo_helloworld

int c = 0;
cout << to_string(c++) + " " + to_string(c) + "\n";
c
evolved
Każdy kompilator a nawet różne programy skomplikowane tym samym kompilatorem mogą dać Ci tu różne rezultaty.

@Woockashek: tym bardziej swoim wywodem potwierdziłeś moją początkową tezę ( ͡° ͜ʖ ͡°)

eh, coraz więcej amatorów pcha się do zabawy....

eh, a wykopki jak zawsze muszą zaznaczyć swoją wyższość (w swoim własnym mniemaniu), bo ktoś jest dociekliwy i podejmuje temat... ( ͡° ͜ʖ ͡°)
DooBeeDooBee
DooBeeDooBee
@modzelem: Poza 1 może być też 255, 65535, 4294967295 lub 2^64-1.