Strings

Q.

What will be the output of the following program in 16 bit platform assuming that 1022 is memory address of the string "Hello1" (in Turbo C under DOS) ?

#include<stdio.h>

int main()
{
    printf("%u %s\n", &"Hello1", &"Hello2");
    return 0;
}
A. 1022 Hello2
B. Hello1 1022
C. Hello1 Hello2
D. 1022 1022
E. Error

Answer : Option A

Explanation :

In printf("%u %s`setminus`n", &"Hello", &"Hello");.

The %u format specifier tells the compiler to print the memory address of the "Hello1".

The %s format specifier tells the compiler to print the string "Hello2".

Hence the output of the program is "1022 Hello2".