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 the two forms of #include directive?
Why flag is used in c?
How main function is called in c?
How do you override a defined macro?
What is scope and lifetime of a variable in c?
Tell me the use of bit field in c language?
Explain how can a program be made to print the name of a source file where an error occurs?
What is modeling?
Write a code to generate divisors of an integer?
How can I split up a string into whitespace-separated fields?
can any one please explain, how can i access hard disk(physical address)? it is possible by the use of far,near or huge pointer? if yes then please explain......
How do we print only part of a string in c?
How old is c programming language?
What are the uses of null pointers?
Tell us the use of fflush() function in c language?