What will be the output of the program ?
#include <stdio.h>
int main()
{
printf("%c\n", 7["IndiaBIX"]);
return 0;
}
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.
Please log in or register to report this question.