When I give sizeof(a)
, where a=13.33
, a float variable, the size is 4 bytes.
But if i give sizeof(13.33)
directly, the size is 8 bytes
Those are the rules of the language.
13.33 is a numeric literal. It is treated as a double because it is a double. If you want 13.33 to be treated as a float literal, then you state 13.33f.
13.33 is a double literal. If sizeof(float) == 4, sizeof(13.33f) == 4 should also hold because 13.33f is a float literal.