Pulpcode

捕获,搅碎,拼接,吞咽

0%

前言:

之前有朋友跟我讨论过一个问题,他问在java中,i=1;i=i++;之后的结果时什么,我一开始认为是2,但当他说答案是1的时候,我不得不想一个合理的解释,我想,可能是因为临时变量,当i赋值给i后,自增更改了临时变量,所以i值并没有改变。当我在为我的解释表示满意时,他们说在c语言下的答案是2,好吧,我只能说是编译器的实现不同,当然这个答案太没说服力了,所以寻找答案的任务就开始了。

我先在《c++ primer》上看见这样的解释:“++i的效率要比i++的效率高,因为i++必须要有一个临时变量来存放i本身的值“,那么我之前只说对了临时变量,但原因是临时变量先用来存放i的值,然后i本身自增,之后,临时变量赋值给左边,这时,i的值又被 自己之前的值覆盖了,所以又变成1,但这只是个推测,再说c语言中为什么是2?所以不得不反编译了。。。

阅读全文 »

引语–为什么是“我们应该如何学习编程”,因为大家都在学习编程,我在这里只想先说说自己的想法和观点,我不是个高手,也没参加过什么培训,但是有一份对编程的热情,渐渐的我总结了自己的经验,如果你搜如何学习编程,你可能会搜到一堆的什么练习了,看源码了,多动手,看好书,写博客,之类的,这些东西我就不说了,说说自己的想法吧

走弯路?

不知道其他的程序员是不是跟我一样,在学习了一段时间,在总结的时候,总会觉得自己走了许多的弯路,如果当初早点怎么怎么就好了,一开始我常常有这种想法,但是事后仔细想想,我觉得走弯路是有,但没我们我们想象的那么严重罢了。

先来看一个笑话吧:

阅读全文 »

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

思考,这个题,如果仔细观察,不难发现是斐波那契数列,也就是从一月开始,兔子的个数是1,1,2,3,5,8.....的形式增长的,所以我决定先写一个斐波那契函数,我使用递归的方式来写,非常简单:

1
2
3
4
5
6
7
int fibo(int n)
{
if(n == 1||n ==2)
return 1;
else
return fibo(n-1) + fibo(n-2);
}

下面是整个程序:

阅读全文 »

好吧,也许你认为我在写一篇如何使用for循环的文章,,,,首先,我想说无论是学习C语言还是学习java的同学都能从此文中获益,还有,你确定你会用for循环吗?其实许多东西你只是在表面,要品才能有一种感觉,有的时候,我喜欢咬文嚼字一下,所以你可以认为我现在在程序中讨论关于“用推还是用敲”的话题。

先来问你一个问题,一个简单的数学问题,不过你尽量快点回答,区间[9,15]中有几个整数?

多数想马上表现自己聪明的同学可能会马上回答6个,但是是7个,你会发现这种双闭区间的元素会比你想象的多,就连[9,9]都有一个元素是吗?而半开半闭就不同了[0,10)你可以不假思索的用[m,n)中有n-m个元素,来回答这个答案,10个元素,你发现什么了没?这。。有点像数组,恩恩,这个问题就是我们在本文后面将讨论的你如何才能熟练的使用这些多1少1的问题。现在先开始说for循环

阅读全文 »