x+=x

x+=x

2019独角兽企业重金招聘Python工程师标准>>>

原问题:

第一种情况:

int x=6;

问执行下列语句后x的值

x+=x-=x*x;

这个答案是-24。

首先明确一点赋值操作从右向左进行,而且这是一次赋值

(一次赋值就是这是一个式子,式子中间产生的值不会马上赋值回去,而是等整个式子运算结束)

x-=x*x   => x=x-x*x

                    =6-6*6    

                    =-30  (这是中间值不影响没参与运算的x)

x+=x   =>  x=x+x   (这俩x一个是原来的值,一个是中间值)

                    =6+(-30)

                    =-24 

这是编译器的优化,只有完成一个式子的时候才往回赋值。

 

看第二种情况:

int x=6;

问执行下列语句后x的值

x-=x*x;

x+=x;

问这两步操作后的x。

这个答案是-60。

 

这是两步操作,所以产生的‘中间值‘’赋值回去了。这是非一次赋值

所以

第一步操作;

x-=x*x;  => x=x-x*x

                    =6-6*6    

                    =-30  

第二部操作;

x+=x;   =>  x=x+x   (这俩x一样,是上一步的x改变后赋值回去的-30)

                    =-30+(-30)

                    =-60

 

转载于:

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689355692a234966.html

相关推荐

  • x+=x

    2023-7-15
    210
  • x == x

    2023-7-30
    80
  • Visual Studio 2017 xx版安装(Win10)

    1.以管理员身份运行“vs2017_xx版在线安装” 2.选择需要的安装选项 3.修改安装路径,建议放在D盘,安装 4.安装完整后,点击"以后再说" 5.

    1月前
    60

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信