若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后a的值为答案是-12,标答里说a=a+(a-(a*a)),请问a+中的a值为什么变成-6

来源:学生作业学帮网 编辑:学帮网 时间:2024/07/07 22:21:14

若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后a的值为
答案是-12,标答里说a=a+(a-(a*a)),请问a+中的a值为什么变成-6

a+=a-=a*a;
复合赋值表达式,从右到左运行,可以分拆成:
a-=a*a;
a+=a;
a的原值为3
a-=a*a;
相当于
a=a-a*a=3-3*3=-6;
再运行
a+=a;
自然就成了-12