Cheap C Doubt

Status
Not open for further replies.

ap

Beta member
Messages
3
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). ?
 

simple

In Runtime
Messages
171
Location
Earth
hey dude! i tried out both your codes( C and C++) in linux( vi editor) and i have found that in both cases i am getting the answer as 2. so check your compiler and try out the same code in a different compiler. c ya!!!!
 
Status
Not open for further replies.
Top