一道有意思的基础算法题

本文通过一道面试题探讨了C++中的递增运算符++i和i++的差异。解析了表达式int result = i+++++i+i++;的计算过程,指出result的值为4。解析过程中强调了先运算后赋值与先赋值后运算的概念,帮助读者巩固基础知识。
摘要由CSDN通过智能技术生成

最近在准备面试中,遇到了一道有意思的题目,今天拿来给大家分享分享

        int i=0;
        int result=i++ + ++i + i++;
        System.out.println(result);

问你该题目的输出的result的值是多少?并说出你是如何计算和理解的。乍一看是不是感觉这不是在侮辱我们吗,你细看其实有坑的。我希望大家动动手或者动动脑,再看我下面的解释。

答案是4。看看你有没有答对呢,虽说是一道非常基础的题目,但是也挺考验基本功的.

解题思路来了:

要做出这道题你首先得知道 ++i 和 i++ 的区别

++i 是先运算 后赋值 例如 i=0 x=++i; 输出的x值是1 就是因为++i是 先做i+1

在将i+1的值赋值给x

而i++ 是先赋值 后运算 例如 i = 0 x=i++; 求 x的值是0 因为是先将i为0赋值给x,再做i=i+1

好了,弄懂上面这两个区别,你就能做出上面这道题了。

result = 0 + 2 + 2

首先第一段i++为什么是0 先赋值后运算 但是i运算完一次 i==1了,所以带到++i中时i==2了

第三段i++,i还是2,所以最后的结果是4,我的简单理解就是i++就i赋值不变,++i就会i+1

新手上路,如有不对,请多赐教,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值