C语言问题:若a=3,则a+=a*=a/=a的值?
5个回答
展开全部
楼主好!
这个式子初看起来还是比较麻烦的,因为不知道从哪里执行,或则执行到某个地方时a的值时什么都蛮难看出的,所以最好用括号给括起来!
根据式子从右向左的执行过程,用括号后为:
a+=(a*=(a/=a))
首先:执行括号的最里面的,既(a/=a),等价于(a=a/a),此时a=3,得出结果这个括号式子(a/=a)式子的值时1,而且a此时的值变为a=1。
其次:执行第二个括号(a*=(a/=a))由上面可得到(a*=1)既(a=a*1),结果式子的值时1,后,a的值任然是1。
再次:执行最后一项a+=(a*=(a/=a)),把前面两项的值代入为a+=1,记得此时a的值是1,所以式子转变为a=a+1=1+1=2。
综上有,式子的值时2、
楼主懂了吗?
这个式子初看起来还是比较麻烦的,因为不知道从哪里执行,或则执行到某个地方时a的值时什么都蛮难看出的,所以最好用括号给括起来!
根据式子从右向左的执行过程,用括号后为:
a+=(a*=(a/=a))
首先:执行括号的最里面的,既(a/=a),等价于(a=a/a),此时a=3,得出结果这个括号式子(a/=a)式子的值时1,而且a此时的值变为a=1。
其次:执行第二个括号(a*=(a/=a))由上面可得到(a*=1)既(a=a*1),结果式子的值时1,后,a的值任然是1。
再次:执行最后一项a+=(a*=(a/=a)),把前面两项的值代入为a+=1,记得此时a的值是1,所以式子转变为a=a+1=1+1=2。
综上有,式子的值时2、
楼主懂了吗?
展开全部
你好!!
a+=a*=a/=a,首先a/=a等价于a=a/a=1,然后a*=1等价与a=a*1=1*1=1
最后a+=1等价于a=a+1=1+2=2
所以答案是:2
a+=a*=a/=a,首先a/=a等价于a=a/a=1,然后a*=1等价与a=a*1=1*1=1
最后a+=1等价于a=a+1=1+2=2
所以答案是:2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案我用printf("%d\n",a+=a*=a/=a)验证是2
因为是a+,所以是从右往左看,a/=a为1,a*=(a/=a)为1,a+=(a*=(a/=a))为2
因为是a+,所以是从右往左看,a/=a为1,a*=(a/=a)为1,a+=(a*=(a/=a))为2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a+=a*=a/=a 这个表达式 是右结合 从右到左
第一 a/=a ——a+=a*=1
第二 a*=1 —— a+=1
第三步 a=a+1
得到a 为2
第一 a/=a ——a+=a*=1
第二 a*=1 —— a+=1
第三步 a=a+1
得到a 为2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询