OT:patecni okenko x = y+++++y;
Marek Peca
marek na duch.cz
Pátek Říjen 4 13:32:05 CEST 2013
> DD, mejme v cecku nasledujici cast kodu (predpokladejme ze x a y jsou int):
>
> y = 1;
> x = y+++++y;
> Co bude v x a y po vykonani tohoto kodu?
Patrne melo jit o "y++ + ++y". Zde je treba vedet, ze ++y vraci hodnotu
po, zatimco y++ hodnotu pred. Kupodivu -- a to je asi vtip ulohy -- neni
potreba vedet, zda se operandy v souctu vyhodnocuji zprava, nebo zleva --
protoze v prvnim pripade to dopadne jako 1+3, zatimco v druhem 2+2. V obou
pripadech zbyde y==3, x==4.
Pro kontrolu jsem to nechal prelozit gcc (-ansi), ale ouha -- priklad byl
prilis hadankovite zamlzen vynechanim mezer -- gcc to nezere: error:
invalid lvalue in increment.
Po vlozeni mezer vysledek dle predpokladu.
Tak nevim, jak hovori ANSI, ale asi se to zadani uplne nepovidlo ;-)
MP
Další informace o konferenci Hw-list