main()
{
float a=8.8;
double b=8.8;
if(a==b)
printf("Equal");
else
printf("not equal");
getch();
}
what is the output?
with reason
Answer Posted / pushkar pahare
This problem has different answers on different compilers.
I had used turboc3, where is always printf "not equal".
Because the size of float is 2 bytes and size of double is
4 bytes, So, when compiler checks this, it can only compare
two bytes rest are left un checked and thus it concludes
false condition. It is same on RHEL5 environment.
Where as on Visual Studio 6.0, It will yield "Equal",
because here both the float and double variable acquires
the same space in memory. Thus the compiler can compare all
four bytes of memory which in fact contains the same values
because the representation of value is same in float and in
double.
| Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
What are linker error?
Explain a file operation in C with an example.
Why does this code crash?
Why is c used in embedded systems?
What happens if a header file is included twice?
program to convert a integer to string in c language'
What is the g value paradox?
Which one to choose from 'initialization lists' or 'assignment', for the use in the constructor?
How is a pointer variable declared?
An organised method of depicting the use of an area of computer memory used to signify the uses for different parts of the memory a) swap b) extended memory c) memory map d) all of the above
What is pointer to pointer in c language?
while initialization of array why we use a[][2] why not a[2][]...?
How can I write a function that takes a format string and a variable number of arguments?
int i=3; this declaration tells the C compiler to a) reserve space in memory to hold the integer value b) associate the name i with this memory location c) store the value 3 at this location d) all the above
What is malloc calloc and realloc in c?