
C- "jednoduchá aritmetická operace"
Dobrý den
Při programování jsem narazil na kód:
int a = 5;
int b = 3;
int c = a++ + --b + ++a - ++b;
Chtěl bych se zeptat, jak bych měl postupovat, když bych to měl řešit na papíře?
Děkuji
int a = 4;
printf("a=%d\n", ++a);
printf("a=%d\n", a++);
printf("a=%d\n", a);
4
4
5
a++ je postincrement - nejdriv se hodnota pouzije a pak se zvetsi.
++a je preincrement - hodnota je nejdriv zvetsi a pak pouzije
tj
5+2+7-3=11
a mam to blbe
ma tam bejt jenom +6, ne 7, protoze to pricteni 1 se provede az po. Takze deset. Kdyby to ale bylo na dvou radkach, bylo by to 11.
no, takze mame jasno preco to vychadza 10 :D cize a++ (inkrementacia sa spravi az po dokonceni celeho priradenia) ... ale preco to vo visual studiu vychadza 12?
V první řadě, bych jemně proplesknul toho, co to napsal...
Toto je asi najlepšia odpoveď, pretože výsledná hodnota je nedefinovaná a závisí od konkrétneho prekladača.
to je jak curat proti vetru a tvarit sa pri tom hrozne vedecky.