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