C语言 a*= 2+3 该怎么算呢 还有a+=a-=a*=a
2个回答
展开全部
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语言运算符号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询