1. sizeof var and sizeof &var will not necessarily be the same for a datatype. If the datatype size is the same size as a pointer (e.g. if ints are 4 bytes and pointers are 4 bytes) then sizeof(int)==sizeof(int*).

I don't know where you got "the ptr stores the add in an float" - pointers are stored in pointer types, which could be considered a special kind of integer, but they're definitely not stored in floats.

2. seems OK

3. Correct, except for the "pointer storing the address in a float" nonsense.