。
“天啦,柳叔,你真是菜得让人发晕。”看到我写的一个很简单的计算FIBONACCI数列的C++程序报出了一大堆编译错误,怡菁在我的身后极为夸张的惊叫起来,惹得若兰和莹莹都是嗤嗤娇笑不已。我没好气的回头看了她一眼,怡菁才忍着笑指点我道:“柳叔,你把这个函数的定义移到上面就行了。”
我按她说的一试,果然顺利编译通过,按F5运行,一切OK。虽然只是个简单的不能再简单的程序,但是对于我这个编程菜鸟来说却还是感觉很有成就感,我想每个初学编程的人在运行自己写的第一个程序(通常是「HELLO,WORLD!」程序)时的感觉都差不多是这样的。
最近这段时间以来,在怡菁的指导之下,我已经能够很熟练的使用MATLAB软件来计算股票的各种指标,绘出各种趋势曲线,以此来对股票的走势进行分析。MATLAB软件还真是不错,它使得我可以非常方便的计算自定义的股票指标,绘制自定义的曲线,这对我研究股票的数学模型是至关重要的。
不过MATLAB软件功能虽然强大,但是也有其不足的地方,譬如说其可编程的能力就有所欠缺,实现很复杂的算法会比较困难,所以我才会让怡菁教我C++编程。当然啦,我所要学的的只是如何用C++来实现某个算法,至于程序界面、消息响应之类的玩意则不是我关心的内容,因为这些玩意不是短时间内能够弄明白的,而且对于我的研究来说也没有什么用。
“怡菁,为什么只是把函数的定义挪动了一下地方就没有问题了,而之前却出现那么多编译错误?”在短暂品味过成就感之后,我回过头问道。
怡菁收起嘻笑之色,耐心的向我解释道:“这其实是个非常简单的问题,几乎所有的编程语言的编译器都会要求,在调用某个函数之前必须要知道这个函数的声明,不然的话它就会像刚才我们看到的那样报出一堆错来,因为它不知道如何对函数的参数进行压栈。也正因为编译器只需要知道函数的声明,所以我们也可以不像刚才那样把函数的定义移到上面,而只是在上面加一句函数的声明,同样可以解决刚才的问题……”
“停、停、停……”我听的是一个头两个大,急急忙忙的打断了怡菁的话:“什么声明?什么压栈?怎么加句话就行了,你慢点讲清楚。”
看到我急迫的样子,怡菁忍不住笑了:“柳叔,你别着急嘛,听我慢慢给你说……”她稍微停顿了一下,整理了一下自己的思路后继续道:“柳叔,堆栈我之前已经给你讲过了,所谓的压栈就是指在调用函数之前,需要把相关的参数压入堆栈,所以一般就称为压栈。而所谓的函数声明,就是只对函数的参数和调用约定的一个描述,喏,就像这样…”怡菁一边给我解释着,一边给我示范起来。
“哎呀,怡菁呐,这玩意还真不好懂,你讲了这么多我还是似懂非懂的。”
怡菁费尽口舌,又是演示、又是讲解,我却还是没完全弄明白,不禁有些苦恼。
怡菁笑着安慰我道:“柳叔,你别着急,慢慢的你就会都明白的。柳叔,你可别把我刚才的玩笑话当真,其实像你这样已经非常不错了,想当初我第一次上机编程序的时候,简直就是手足无措,都不知道该干什么……”
“怡菁姐,你也有这么菜的时候?”一旁的莹莹听怡菁说起自己的糗事,有些好笑的问道。
怡菁娇笑着点点头道:“是啊,我上大学之前都没有接触过计算机,你说第一次上机能不手足无措吗?不过我还不是班里最菜的,因为有些人一堂课下来,一个仅仅数行代码的「HELLO,WORLD!」程序都没编译通过,而我的程序好歹还能运行起来。”
“那也太菜了吧?估计跟老爸有一拼。”嘿,莹莹这小妮子怎么老是跟我过不去,我没好气的瞪了她一眼道:“你这小丫头,怎么就没有一句好话?我记得上个礼拜逛商场的时候,就属给你买的东西最多,你自己说说看,我是对你不好还是怎么着你了,你非要让你老爸我出糗?”莹莹朝我做了个鬼脸,嘻笑不答,我笑骂道:“鬼丫头,还不快上学去,是不是想找骂?”
“是、是、是,我亲爱的父亲大人。”莹莹怪腔怪调的道,活像个唱戏的。
我啼笑皆非的摇摇头,不去管她,而是招呼怡菁接着给我讲解C++中有关「指针」的问题。
在C或C++语言中,指针是让很多初学者感到非常苦恼的一个语言特性,我也不例外。怡菁给我讲解了半天,我的脑袋里却依然是浆糊一团,只得朝怡菁摆摆手道:“怡菁,时间也差不多了,今天就先到这儿吧,我的脑袋里还是乱糟糟的,今天晚上我再看看书,明天你再跟我好好讲讲。”
怡菁笑着点点头道:“柳叔,指针的确是比较难懂一些,你看书的同时最好也多实践实践,用得多了也就熟了。”我点了点头,怡菁抬头看了看墙上的挂钟后道:“柳叔,下午我还有事,那我就先回去了。”
我一边站起身,一边拿过一旁的外套道:“正好我要去小