Thread: Cheap C Doubt
View Single Post
Old 05-02-2003, 10:26 AM   #1 (permalink)
ap
 
Newb Techie

Join Date: May 2003

Posts: 3

ap

Default Cheap C Doubt

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). ?

ap is offline