int main() { float f = 12.2; char *p1; p1 = (char *)&f; printf (\"%d\", *p1); }
This outputs 51.
Mostly what EFraim says, except that you did cast to char*, only the stackoverflow markup was wrong.
So you get the least significant byte of f's internal representation (in IEEE-754).