C语言 a*= 2+3 该怎么算呢 还有a+=a-=a*=a

 我来答
一叹t
高能答主

2021-01-15 · 我们不创作,我们只是信息的搬运工。
一叹t
采纳数:2139 获赞数:11982

向TA提问 私信TA
展开全部

a*= 2+3的结果为a=a*(2+3)=5*a。a+=a-=a*=a的结果为:0。

语句的执行分析:

a*= 2+3,首先加法的优先级大于赋值运算符的优先级,所以限制性2+3=5然后执行*=,表达式可以转化为a=a*5,所以说a*= 2+3的结果为5*a。

a+=a-=a*=a,表达式中全部都是赋值运算符,所以说运算是自右向左,所以先执行a=a*a,所以a=a^2,然后执行a-=a^2转化为a=a^2-a^2=0,然后执行a+=a,然后最后得出结果为0。

扩展资料:

C语言的赋值运算符:

用于赋值运算,主要有三类共十一种:

1、简单赋值(=)。

2、复合算术赋值(+=,-=,*=,/=,%=)。

3、复合位运算赋值(&=,|=,^=,>>=,<<=)。

赋值运算符的结合性和优先级:

赋值运算符的优先级处于C语言运算符优先级的第14级,结合方向右结合(运算为自右向左运算) 而且是双目运算符。

参考资料来源:百度百科-C语言运算符号

吉时曾铃
2019-09-16 · TA获得超过3724个赞
知道大有可为答主
回答量:3138
采纳率:31%
帮助的人:387万
展开全部
*=符号的优先级最低,所以a*=
2+3等价于
a
=
a
*(2+3);
+=,-=,*=
为右结合,即从右至左算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式