c语言中a+=b和a=a+b有什么区别

c语言中a+=b和a=a+b有什么区别,初学者求答案!不甚感激,

a+=b是a = a + b的特例,前者中加法的一个加数和结果必须相同。后者不受限制。
a = a + b
a = b + a
a = a + a
a = a + 1
这些情况都可以用 += 代替。
但是 a = b + c
就不可以。

编译器为这两者产生的机器代码是一样的,可以视为等价。

高级语言,实现相同的功能,往往有不止一个语句或者运算符,这种现象也叫做“语法糖”,语法糖的作用是方便程序员编写更简洁的程序。

如同实际生活中,为什么我们有1块钱、10块钱、20块钱……面额的钞票,后者不是必须的,但是是很方便的。你付10块钱,用10张一块的和1张10块的都可以。

a+=b等价于a=a+b。
在赋值符=之前加上其他运算符可以构成复合的运算符,“+=”就是一个复合的赋值运算符。类似还有:
x*=(y+3)等价于x=x*(y+3);
x-=a等价于x=x-a。

结果相同,时间复杂度不同