c语言中b+=a是什么意思?

 我来答
旅游小达人Ky
高粉答主

2021-01-29 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1893
采纳率:100%
帮助的人:35.8万
展开全部

是a=a+b++==0的简写,

运算符的优先级可知:++最高、+次之、==再次之,而=最低,即先进行b++运算,在进行a+(b++)运算,其次进行a+(b++)==0运算,最终把a+(b++)==0的结果赋给a。

扩展资料

如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。

指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。

heroyuan2
2013-03-27 · TA获得超过183个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:43万
展开全部
首先,b++表示对b做自加运算,我们用c代替,c=b++;
然后,a+=b++ 等于 a+=c,即a=a+c,也就是说“==”之前部分是给a赋值的,我们用d代替,即d=a+c;
最后是一个逻辑判断d==0,也就是判断前面计算出来的a是否等于0.

这里要注意的一个地方是b++,不是++b,也就是说在当前这一次判断的时候b并不自加,而是在当前判断执行完之后才自加1.

比如初始a=1, b=2,b没有自加,a=a+b=1+2=3,那么这句话这次是在判断“3==0”,下次再判断的时候b才自加变成了2,a=a+b=3+2=5,相当于在判断“5==0”,依次类推即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-30
展开全部
=是c/c 独有的复合赋值运算符,实际上是一种缩写形式,使得变量的改变更为简洁,b =a原式为b=b a。=是赋值不是等于。复合赋值运算符有下列这些: =加法赋值,-=减法赋值,*=乘法赋值,/=除法赋值,%=模运算赋值,<<=左移赋值,>>=右移赋值,&=位逻辑“与”赋值,|=位逻辑“或”赋值,^=位逻辑异或赋值。b=b a与b =a的区别在于,前表达式a被计算了两次,后表达式a仅计算了一次,这对于程序运行无多大影响,但使用普通赋值运算符,当表达式作为函数的返回值时,函数就会被调用两次,会加大程序的开销,使效率降低。
追问
b=b a啥东西?b+=a是我问的
有些例子吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中械
2013-03-27 · 超过14用户采纳过TA的回答
知道答主
回答量:73
采纳率:75%
帮助的人:27.7万
展开全部
其实是a=a+b++==0的简写;从运算符的优先级可知:++最高,+次之,==再次之,而=最低,即先进行b++运算,在进行a+(b++)运算,其次进行a+(b++)==0运算,最总吧a+(b++)==0的结果赋给a。这个可以编程应正。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQboy321
推荐于2017-11-25 · TA获得超过115个赞
知道答主
回答量:152
采纳率:0%
帮助的人:87.9万
展开全部
+=是复合运算符。 这句意为b=b+a; 注意+=中间没有空格
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式