关于i++与++i的思考

        笔者刚接触这个的时候, 也是糊里糊涂,特意去查找了许多资料,自以为已经了解,不想仍是只在此山中,云深不知处。

        通常的解释是:i++先运算,再自增;

                                    ++i先自增,再运算。

        一定程度上,这两句话是对的。但笔者这里想说的是,笔者赞同第二句话,却不认可第一句话。我们来看一个简单的例子:

int i=0;
int b=0;
b=i++;
        执行完语句后b=0,i=1,相信这个大家都没有疑惑。那么,请看下面:

int i=0;
i=i++;
        执行完语句后,i等于什么呢,?很多人都说是1,笔者曾经也这么认为 。按照先运算,再自增的说法,先执行i=i,此时i仍等于0,接着再执行i++,此时i等于1。然而放到机器上一运算,傻眼了,最后的结果i仍等于0。为什么呢,笔者认为i++真正的执行顺序是先自增,再把自增前的值运算,可以这么理解i=i++这个过程:

//i=i++的理解
int temp=i;
i++;
i=temp;
         如果理解有误,欢迎大家指正。
       


转载于:https://my.oschina.net/u/3348790/blog/1083502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值