C Quiz – 103 | Question 2

What’s going to happen when we compile and run the following C program snippet?

filter_none

edit
close

play_arrow

link
brightness_4
code

#include "stdio.h"
int main()
{
 int a = 10;
 int b = 15;
  
 printf("=%d",(a+1),(b=a+2));
 printf(" %d=",b);
  
 return 0;
}

chevron_right


(A) =11 15=
(B) =11 12=
(C) Compiler Error due to (b=a+2) in the first printf().
(D) No compile error but output would be =11 X= where X would depend on compiler implementation.


Answer: (B)

Explanation: As per C standard C11, all the arguments of printf() are evaluated irrespective of whether they get printed or not. That’s why (b=a+2) would also be evaluated and value of b would be 12 after first printf(). That’s why correct answer is B.

Quiz of this Question

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.