Why is there a difference in the evaluation of these two code parts (Atleast in BTC 2.0 and BTCPP 3.0 which i use)
int a=1,b;
b=a++ +a;
cout<<b<<endl; //evaluates to 2
a=1;
cout<<a++ +a; //evaluates to 3
i also suppose the use of
cout<<(a++ +a);
also shows 3. Why does this happen ?
This is also the case in case a printf() is used in C.
The printing of b i can understand, as since it is a post increment, it is evaluated in the end. But in most books, how is it that the post increment is mentioned on the top in the precedence list (some books show it above the pre-increment also). ?
int a=1,b;
b=a++ +a;
cout<<b<<endl; //evaluates to 2
a=1;
cout<<a++ +a; //evaluates to 3
i also suppose the use of
cout<<(a++ +a);
also shows 3. Why does this happen ?
This is also the case in case a printf() is used in C.
The printing of b i can understand, as since it is a post increment, it is evaluated in the end. But in most books, how is it that the post increment is mentioned on the top in the precedence list (some books show it above the pre-increment also). ?