a+=a*=a/=a-6 求a

前面我给a赋值10能算出来8,但如果给a赋值20那从右往左a=a/(a-6)=20/14=1a*=1*1=1a+=1+1=2我这样算有问题吗?问题出在哪(我是自学然后不太... 前面我给a赋值10能算出来8,但如果给a赋值20 那从右往左 a=a/(a-6)=20/14=1 a*=1*1=1 a+=1+1=2 我这样算有问题吗?问题出在哪 (我是自学然后不太懂 望大神们指点一下) 展开
 我来答
匿名用户
2017-09-06
展开全部
-的优先级较高,+=、*=、/=的优先级相等,较低,而且是右结合的。所以等效语句如下:

a = a / (a - 6);
a = a * a;
a = a + a;

在gcc下输入10,结果是8,与上面的代码相符,VC2008下也是8。
-------------------------------------------------------------
PS:如果a是int的话每次都要向下取整

第一次a = a / (a - 6) = 10 / 4 = (int)2.5 = 2
第二次a = a * a = 2 * 2 = 4
第三次a = a + a = 8

如果是float或者double就没这个步骤了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式