Strings - Programming

Q1:

What will be the output of the program in 16-bit platform (Turbo C under DOS) ?
#include<stdio.h>

int main()
{
    printf("%d, %d, %d", sizeof(3.0f), sizeof('3'), sizeof(3.0));
    return 0;
}

A 8, 1, 4

B 4, 2, 8

C 4, 2, 4

D 10, 3, 4

ANS:B - 4, 2, 8

Step 1: printf("%d, %d, %d", sizeof(3.0f), sizeof('3'), sizeof(3.0)); The sizeof function returns the size of the given expression. sizeof(3.0f) is a floating point constant. The size of float is 4 bytes sizeof('3') It converts '3' in to ASCII value.. The size of int is 2 bytes sizeof(3.0) is a double constant. The size of double is 8 bytes Hence the output of the program is 4,2,8 Note: The above program may produce different output in other platform due to the platform dependency of C compiler. In Turbo C, 4 2 8. But in GCC, the output will be 4 4 8.