0

#include<stdio.h> main() { short a,b; a=2; b=5; b=a++ +b+a; printf("Output %d\n",b);//9 printf("Output %d\n",a);//3 }

Please can anyone explain that why variable "b" is storing 10 instead of 9.

15th Oct 2020, 9:30 AM
[YUTIK...
[YUTIK... - avatar
3 Answers
+ 5
First read about the incremet and decrement operator how its woRkiNg. Pre incremet will solve first then expression will calculate but in case of post incremet or decrement expression will calc then value will increase or decrease. In your case here u defined a =2 and b=5 In next line b=a++ + b+a; here u used Post increment so first expression will calculate then a will be increase So b= a++ + b+a b=2+5+3 here after 2+5 +a here value will increase 3 b=2+5+3 =10 but its depend on Compiler may be some Compilers or different online Compiler will give you different different Outputs . May be some will give 9 .
15th Oct 2020, 9:57 AM
A S Raghuvanshi
A S Raghuvanshi - avatar
+ 1
a++ +b +a=2+5+3 ++ increments the value of variable a later in the expression
15th Oct 2020, 9:41 AM
Abhay
Abhay - avatar
+ 1
One of the classic "Undefined Behavior". In some compilers, it will be evaluated as b = 2 + 5 + 2, the others will evaluate it as b = 2 + 5 + 3.
17th Oct 2020, 2:41 AM
LastSecond959
LastSecond959 - avatar