奇思妙想 · 2024年 7月 2日 0

复合赋值运算符 a op= b和a = a op b等价?

45 次浏览

前者表达式a只会计算一次,后者会计算两次,所以只有a并非带有副作用的表达式,a op= b才和a = a op b等价,否则会收到a副作用的影响。例如:

  • a[i++] += b
    i只会自增一次
  • a[i++] = a[i++] + b
    i会自增两次