学习编程之智商和情商并用法则

这天,群里有个学员提了一个问题,我扫了一眼,本没想解答,心太累,智商捉急。

后来不知道为啥觉得还有点代表性和共性,遂整理到博客中,希望供大家参考。

题目是这样的:

int a = 3, b;
b = (a++)+(++a)+(a++)*2+a+(++a);

答案是31 ,关键要问的问题是 为什么是31

    看到这种问题我就想到了 幼儿园的一个题目:小青有10只苹果,小庆有8只梨子,请问小青把2只苹果换小庆3只梨子,此时两人各有几只梨子和苹果。(心好累)

好吧,一般c/c++基础深厚的同学也有可能算错或者搞混(这里咱不带直接拷贝到程序里计算的哦~~~)

这里首先要搞清两个概念

a++和++a  一个是后加,一个是先加 。

神马叫后加?

a=1,b=a++,  运算结束后b=1,a=2   

那么先加呢?

a=1,b=++a   运算结束后b=2,a=2   

这里有个共同点,不管先加还是后加,a的值一定会+1.

然后我们再看上面的问题,我们会发现就算搞懂了先加和后加的概念,tmd好像还是不知道上面的31是几加几得来的。

那么我们就要换种思路来解决?

1、人脑比较智能,看到上面的表达式,会从左到右分别加。就是因为太智能会导致混乱,到最后很容易因为掌握了概念反而算错

2、电脑别看能算很牛的表达式,但其实它就是个SB。电脑看到上面的公式首先是分解,根据表达式分解为5个公式

   1)b=a++;   //此时的b 是 3
 
   2)b=++a;  //此时的b 是 5
 
   3)b=(a++)*2; //此时的b 是 10

   4)b=a; //此时的b 是 6

   5)b=++a;  //此时的b 是7

 最后的结果就是3+5+5*2+6+7

总结下:

 1、基本概念还是要清楚

 2、能连着把“为什么”说清楚的人 靠的是智商

 3、如果大家像我的智商那么捉急,那么不妨用用情商,把表达式分解为5步。就能知道为什么

 4、说实话我一眼看到这个表达式,一开始我是算错的,尽管我知道先加和后加的概念。

 5、有时候做个程序员,有的人靠的是智商,很牛逼。但是有的人可以智商和情商并用,互相弥补不足,也是一种处世之道。


我的视频教学:《从此不求人:自主研发一套PHP前端开发框架》

————————————————–

【你如果不爱读书、不爱看新闻、不爱学习,没关系。我来做你的”陪读郎”】

奴隶我的方式:请关注微信订阅号:程序员在囧途。

每天讲故事、讲商业模式、讲技术给你听。

我的个人站点:www.hishenyi.com

q2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值