#define KWD(a) ( (a) * (a) )
...
int x=4,p;
..
p = KWD(x++);
w symfonii p wynosi (po obliczeniu) 20 a mi wychodzi 16...
p = ( (x++) * (x++) ) <<------ jak wytlumaczyc to dzialanie ? co sie stanie z 'x' ?
#define KWD(a) ( (a) * (a) )
...
int x=4,p;
..
p = KWD(x++);
w symfonii p wynosi (po obliczeniu) 20 a mi wychodzi 16...
p = ( (x++) * (x++) ) <<------ jak wytlumaczyc to dzialanie ? co sie stanie z 'x' ?
#define KWD(a) ( (a) * (a) )
...
int x=4,p;
..
p = KWD(x++);w symfonii p wynosi (po obliczeniu) 20 a mi wychodzi 16...
p = ( (x++) * (x++) ) <<------ jak wytlumaczyc to dzialanie ? co sie stanie z 'x' ?
Moim zdaniem bedzie tak:
p = KWD(x++)
czyli p = ( (4) * (5) )
gdyz po napotkaniu pierwszej postinkrementacji x zostanie zwiększony o jeden stad w nastepnym odniesieniu co do x = 5. Gdybys zastosowal ++x</code> zamiast <code>x++
to faktycznie mialbys 16.
[Dopisane]
Sorki oczywiscie przy drugim sposobie mialbys 30 :P
ok juz rozumie :] dzieki