Machine-translated by Google. Questions are authored in English.
Top

Discussion

What will be the output of the program ?

#include <stdio.h>

int main()
{
    printf("%c\n", 7["IndiaBIX"]);
    return 0;
}

 

  • A.Error: in printf
  • B.Nothing will print
  • C.print "X" of IndiaBIX
  • D.print "7"

Answer: C

Correct answer: print "X" of IndiaBIX

Subscripting is defined as x[y] meaning *(x+y), and addition is commutative, so 7["IndiaBIX"] means *(7 + "IndiaBIX") - exactly the same as "IndiaBIX"[7].

Counting from zero, position 7 of IndiaBIX is X. The reversed form is legal but deliberately perverse, and it is worth knowing chiefly as evidence that array subscripting in C really is just pointer arithmetic with syntactic sugar.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.