(a) 
double d = 2.0;
int *ip = (int*) &d;
*ip = 3;
d *= 2;

(b) 
double d = 2.0;
int *ip = (int*) &d;
d *= 2;
*ip = 3;

Example 8: Illegal code can produce surprising results. (a) Original code; (b) compiler's transformation.

Back to Article