+ 1
Whats the actual output??
int x = 5,z; x = ++x; z = x + (++x); cout << z; //or sop(z) in java whats the actual problem is difference in output.In c++,output is 14 and while in java,output is 13.Can someone explain why??This led me in confusion in concepts of prefix and postfix.
12 ответов
+ 4
All comes down to the compiler and how it handles it for the relative language. I've seen this vary for the same language between different compilers.
x = 5;
x = ++x;
z = x + (++x);
In C++, it's doing it how I would personally think it should. X starts as 5. Next statement it's increased by 1 and stored back into X as 6. In the third statement, the ++x is forcing X to become 7 BEFORE the calculations, which causes it to change the first X to 7 also. So when the actual calculation runs, it's 7 + (7), which equals 14.
In Java, it's doing mostly the same thing, except in the third statement it's only changing the (++x) to 7 before the operation and the first X is still 6. So 6 + (7) = 13.
+ 2
You musnt have difference
+ 2
Share your both codes from your playground
+ 2
Avoid use of postfix/prefix in such statements in the practice.
+ 2
pranit, Netkos give you the answer and Boris the solution.
If you change in the third statement
++x
per
x+1
output is the same
+ 2
Obviously, really not is the same operation because for example in
JAVA:
x=2
z=0
z=x+ ++x= 2+3=5
so
z=5; x=3;
CPP
x=2
z=0
z=x+ ++x= 3+3=6
so
z=6; x=3;
and in both
x=2
z=0
z=x +(x+1)=2 + (2+1)=5
so
z=5; x=2;
x=2
z=x+1
is not the same
z=++x
first z=3; x=2;
second z=3; x=3;
+ 2
Of course
++x
in this instruction
z=x+(++x)
work different in different languages
+ 1
ohh yes.. got it thank u guys..
0
https://code.sololearn.com/ciqB6bs67HQ2/?ref=app
0
Check em out..correct me if i did something wrong in coding and please explain prefix and postfix.Thanks
0
@Netkos Thanks man..I understood what u meant but whats the actual answer?..and why it is flawed by giving 2 different answers in different languages.This shouldnt make sense.