0

Question About a+=b In C++

Why does "a+=b" mean "a=a+b" and not "a+b=b"? What I had in mind was kind of like the distributive property in maths except with operations instead of numbers but I don't think that works. Or is it like distributive property where a+b is combined with a=b, resulting in a+b=b and since it's the first version of b because of a=b, it's a+b=a? So basically is there logic to it or is it just that way?

21st Aug 2017, 12:31 AM
Duygu Bayram
Duygu Bayram - avatar
4 Answers
+ 1
Beacuse in c++ the "=" is an assignment operator and it assigns a value form the right to the left. So, if a=0 and b=1 then a+=b the value of a becomes 1(0+1) again with a=a+b you are adding a+b and storing it in a. But a+b=b is wrong because you can't assign the value of b to both a+b The assignment operator "=" assigns valus from right to left Hope this helps
21st Aug 2017, 1:49 AM
Infant Raj
Infant Raj - avatar
+ 9
The assignment operator '=' assigns RHS value to LHS value, not the other way around. Thinking otherwise would only confuse you. According to the definition provided, a + b = b makes no sense. a = a + b, on the other hand, assigns the sum of the previous value of a and b to a, so a would hold the value of (a+b).
21st Aug 2017, 1:49 AM
Hatsy Rei
Hatsy Rei - avatar
+ 1
Thank you both I understand now.
21st Aug 2017, 1:54 AM
Duygu Bayram
Duygu Bayram - avatar
+ 1
Often times in programming languages each symbols have differnt meanings than that which are used in everyday life. people often get confused with "=" "==" and "===" Glad you understood it pretty quickly.
21st Aug 2017, 1:58 AM
Infant Raj
Infant Raj - avatar