若有 int a=10,b=20,c=30 ;则能使 a 和 c 的值互换的语句,为何b=a;a=c;c=b;正确,而a+=b;c-=b;就不对呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/04 03:48:14
若有 int a=10,b=20,c=30 ;则能使 a 和 c 的值互换的语句,为何b=a;a=c;c=b;正确,而a+=b;c-=b;就不对呢?
xPMN@u Գ 4z-Mm,RBhmRZƕW2{ިn(69f4Tj*X“6:"kEoo9R<6 1,D1öZx'=-a0=#oKL4j?I)ȍW w_8hbb$C;!'6O 6/|噴"N .VwK/&o"Rp*6_hf]9nzMJ

若有 int a=10,b=20,c=30 ;则能使 a 和 c 的值互换的语句,为何b=a;a=c;c=b;正确,而a+=b;c-=b;就不对呢?
若有 int a=10,b=20,c=30 ;则能使 a 和 c 的值互换的语句,
为何b=a;a=c;c=b;正确,而a+=b;c-=b;就不对呢?

若有 int a=10,b=20,c=30 ;则能使 a 和 c 的值互换的语句,为何b=a;a=c;c=b;正确,而a+=b;c-=b;就不对呢?
因为你这就不是值互换,而是计算出来的,变量其实就是一个内存地址,把a赋给b,就是让b指向a,指向的内存,这样的互换,没有改变值,所以是真正的互换.