in Programming in C edited by
1,147 views
1 vote
1 vote
#include<stdio.h> 
int main(void) 
{ 
  int p = 1; 
  int q = 0; 
  q = p++ + p++; 
  printf("%d %d",p,q); 
  return 0; 
}

Output is Showing $3,3$ How ?

in Programming in C edited by
1.1k views

2 Answers

1 vote
1 vote
Look at it this way
q=p++;
q=q + p++;

so the first time when p is encountered in this expression is treated as 1, the next ++ increments p by 1 so p becomes two. the second operand p is now treated as 2 so (1+2) becomes three. Now after that ++ is encountered which makes p=3. So this is why p becomes three and q becomes three

1 comment

The above code you have written is not the same as gi en in question. You can't write p++ in another line since p value will be used in the question is old one(1) nd the p value used in your code for computing q is new one(2). So, I think answer should be 3,2
0
0
0 votes
0 votes
Step first- p=1 stored and then incremented

Step two- p=2 stored and then incremented to 3

Then q=1+2=3

And p has been incremented and and its value is 3...so final value stored in p is 3

Related questions