++i 和 i++

今天看String的源代码中看到startsWith方法里面有这么一段

 while (--pc >= 0) {
            if (ta[to++] != pa[po++]) {
                return false;
            }
        }

当时很糊涂 后来baidu了下发现 i++是先是使用 i的原值,然后再原值的基础上加1。++i是先在原值的基础上加1,然后再使用i的值,注意“使用”这个词。

所以--pc >= 0这段代码可以这么理解,先对pc的值减1,再使用更新后pc的值 与0比较。ta[to++]理解为 先使用to的值再对to加1,故假如to初始值为0,ta[to++]就是ta[0];

 

posted @ 2018-11-17 07:47  sagan15  阅读(109)  评论(0编辑  收藏  举报