更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

用C语言编程时,a+=b 和 a=a+b 真的完全等价吗?

  • 发布:C++培训
  • 来源:C语言与程序设计
  • 时间:2019-09-30 11:10

这个问题也是我在浏览网页的时候看到的,非常有意思,学编程这么久竟然从来没有真正思考过这类问题,相信 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;并不是任何时候都等价,要分情况视之,原因就在数据类型转换这里,希望大家以后对这两者慎重使用。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++与Java哪个更适合做项目?
下一篇:C语言的编译器是怎么来的?

空指针到底是什么意思?

a[i] = i++ 到底对不对?

C++培训哪家好?全方位对比机构

C/C++中的必须熟记的基础知识

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省