C/C++培训
达内IT学院
400-996-5531
这个问题也是我在浏览网页的时候看到的,非常有意思,学编程这么久竟然从来没有真正思考过这类问题,相信 a+=b 和 a = a+b大家也都有写过,那你有没有思考过这二者究竟是不是完全等价的呢?其实这个问题的难点就在a和b的数据类型上。
分两种情况:
1、对于同样类型的a,b来说
两个式子执行的结果确实没有什么区别。但是从编译的角度来看,a+=b;执行的时候效率高。
2、对于不同类型的a,b来说
不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,请记住一点:运算过程中,低精度的类型向高精度类型转换。
#include<;stdio.h>; int main() { int b = 5; char a = 3; a += b;//编译通过 a = a + b;//编译出错 printf("%d", a); }
在上面的代码中,如果使用+=,b会直接转换成 char,如果使用a+b,a首先转换成int,最后赋值的时候再转换成char。
因此,总的来说,a=a+b;和a+=b;并不是任何时候都等价,要分情况视之,原因就在数据类型转换这里,希望大家以后对这两者慎重使用。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved