As we know both float and double are used for storing decimal point numbers, and the size of both varies from compiler to compiler.
In general float occupies 4 bytes of memory and double occupies 8 bytes of memory.
Example:
#include
int main()
{
float x=0.5;
double y=0.5;
printf("size of x=%d\nsize of y=%d",sizeof(x),sizeof(y));
return 0;
}
Output:
size of x=4
size of y=8
But see the next program,
#include
int main()
{
float x=0.5;
double y=0.5;
printf("size of x=%d\nsize of y=%d\nsize of variable=%d",sizeof(x),sizeof(y),sizeof(0.5));
return 0;
}
Output:
size of x=4 size of y=8 size of variable=8
Have you observed the fact ??
Now, observe one more point…
#include
int main()
{
float x=0.5;
double y=0.5;
printf("size of x=%d\nsize of y=%d\nsize of variable=%d\nsize of second variable=%d",sizeof(x),sizeof(y),sizeof(0.5),sizeof(0.5f));
return 0;
}
Output:
size of x=4 size of y=8 size of variable=8 size of second varaible=4
So, there is a big difference in 0.5 and 0.5f,
0.5 , is by default double but when we assign it in any float variable.
