Well .. i = * ( long * ) &y
&y - gives the address of y variable
( long * ) &y - is casting that float address to an address of type long
* ( long * ) &y - gets the value using our new pointer of type long