For the original code:
x++ = y++
This line will never be evaluated because it is not legal C and will not be compiled. The result of x++
is not an lvalue and is not permitted on the left side of an assignment.
For the updated code:
float x,y;
*x++ = *y++
This is not legal because *
cannot be applied to a float
.
I will add this code:
float *x, *y;
*x++ = *y++;
This code says:
- Let a temporary, say
float *xt
, equalx
. - Let a temporary, say
float *yt
, equaly
. - Add one to
x
. - Add one to
y
. - Assign
*xt = *yt
.
The actual operations may be performed in various orders, provide xt
takes its value before x
is updated, yt
takes its value before y
is updated, and xt
and yt
are defined before they are used.
1
solved Increment in both side in C [closed]