Skip to content
Related Articles

Related Articles

Improve Article

C | String | Question 5

  • Difficulty Level : Basic
  • Last Updated : 05 Feb, 2013

What does the following fragment of C-program print?

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.




char c[] = "GATE2011"
char *p =c; 
printf("%s", p + p[3] - p[1]) ;

(A) GATE2011
(B) E2011
(C) 2011
(D) 011


Answer: (C)

Explanation: See comments for explanation.


char c[] = "GATE2011"; 
 
 // p now has the base address string "GATE2011" 
char *p = c;  
 
// p[3] is 'E' and p[1] is 'A'. 
// p[3] - p[1] = ASCII value of 'E' - ASCII value of 'A' = 4 
// So the expression  p + p[3] - p[1] becomes p + 4 which is 
// base address of string "2011" 
printf("%s", p + p[3] - p[1]);  // prints 2011
My Personal Notes arrow_drop_up
Recommended Articles
Page :