「行吧,那这次先放过你,要是有下次,新账旧账一起算~」
老爹佯装出一副恶人模样说道。
「桥豆麻袋,这对话有一丝丝熟悉啊!莫非老爹是因为我上午威胁了他老婆?唉~,看来老爹和老妈才是真爱,我可能真的是一个意外~」
想及此处,我不禁心中泛起一阵阵心酸,不由自主地叹了一口气。
「诶,老爹,我记得以前你跟老妈都说我是捡来的对吧?」
我脑中灵光一现,突然想到了点什么。
「嗯,咋了,是想我通知你亲爹亲妈赶紧接你回去,然后好脱离我和你老妈的魔爪,是这个意思么?」
老爹斜着眼睛,一脸不善地看着我说道。
「额……你想多了,我肯定是亲生的啊,毕竟普天之下除了你跟老妈还有谁能生出我这么优秀的闺女?」
我内心惊骇交加,没想到一下就被老爹看穿了。于是赶紧吹了一个彩虹屁,立马进入商业互吹模式。
「你心里想什么老爹我清楚得很,毕竟你老爹我现在都还等着让我回家继承亿万家业的爹妈出现呢。哈哈~」
一脸严肃地爹说着说着自己就笑起来了。
「……」
这下轮到我无言以对了,真没想到老爹居然是这样的老爹。
「好了好了,玩笑话就到此为止。既然你已经看书了,老爹相信你还是能够理解的,那这部分知识老爹就不重复讲一遍了,将其中需要注意的东西跟你说一下就好了。当然了,如果你有什么疑问,可以随时问老爹。」
「嗯嗯,好哒~」
「第一点,在不同的编译器里边四娃long(长整型)可能不一样,书上说int占2个字节,实际上在很多编译器里边int都是占4个字节。占用的字节数不同,能赋值的数值范围也就不同了,这是需要注意的一点。」
老爹扶了扶鼻梁上的眼镜,一脸认真地说道。
「那我怎么知道int真实占用的字节数是多少呢?」
我疑惑道。
「这个时候我们就用借用混沌先民sizeof的神通了。
sizeof这个混沌先民呢有一个让人羡慕的神通——天眼,它一眼就能看透七个葫芦娃的原型。
比如说你要看五娃int占用的字节大小,只需要sizeof(int)就可以了。
同理,也可以通过这种方式查看其他葫芦兄弟占用几个字节。」
「哦~,原来还有这种操作?」
「第二点,虽然三娃float(浮点)和四娃long(长整型)都占用4个字节,但是float表示的数值范围远远超过long。这是因为计算机在保存小数时和整数采取的是不同机制,整数的保存之前已经和你说过了,至于小数是如何保存的,要等你初中学了指数才能明白了。这个不影响你学习编程,心里有个概念就好了。」
「嗯,我知道了,看书的时候的确是有这个疑问。」
我恍然大悟道。
「第三点,大娃(long double)、二娃(double)和三娃(float)他们表示的小数可能会有精度损失。」
「什么叫做精度损失?为什么会有精度损失?」
「也就是说,原本你要表示0.5,但保存的真实值可能是0.5000000000000001,这个就叫精度损失。精度损失是保存小数的机制造成的,因为有些小数不能完全精确的转换为指数形式。
因此,我们在对两个浮点型数据进行比较的时候就不能直接看值等不等,而是要采用逼近法。」
「逼近法又是什么鬼?」
「就拿刚刚的例子来说,比如说现在有个double型的变量a,它的理论值为0.5,我们要比较它等不等于0.5时,只需要拿a和0.5做减法运算,如果相差的值小于0.0000000000000001,就认为a就是0.5。」
「哦~,懂了懂了。」
「正是因为表示小数的大娃、二娃和三娃有精度损失,所以涉及到和毛爷爷相关的程序,千万、千万、千万不能用它们计算!重要的事情说三遍,这一点一定要记住!」
老爹郑重地说。
「如果用了会怎样?」
「想象一下你存压岁钱的银行卡中的钱平白无故变少了你会怎样?」
「那肯定得去找银行的麻烦啊,这还用说么?」
「如果是成千上万人一起去找银行的麻烦呢?」
老爹阴恻恻地说道。
「……这……银行怕是要被拆了……」
我咽了一口口水,这画面的确是太……要是银行遭了殃,开发程序的程序员的下场……让人有点不敢想啊。
「行吧,相关的知识就介绍完了,接下来你可以按照书上的例子敲代码练习了,要是有什么问题随时问老爹哈。」
想到我马上就要独立敲程序了,内心还有点小激动呢。我深深地吸了一口气,平复一下心情。
我的双手就如同一直翩翩飞舞的蝴蝶,行云流水般的打完了代码。
认真仔细的检查了三遍后,确认和书上一模一样后,我打开了小黑屏。
编译运行一气呵成,得到的结果也和书上别无二致。
首战告捷,一股巨大的成就感油然而生,仿佛我刚刚写的是一个举世瞩目的大工程。
书上的示例无非是对数据类型和五种算求运算符的使用,在尝试了几个例程切得到正确的后,我开始将目光转移到课后练习题。
课后练习题主要还是以理论知识为主,其中有一道题简单到让我怀疑人生。
「x和y都为double型变量,其中x=2,y=x+3/2的值是:
A 3.500000
B 3
C 2.000000
D 3.000000
这真是大学生做的题?居然还有两个相同的答案,出题的人怕也是喝醉了哦。」
看到B、D选项答案一样,于是我首先给排除掉了,2+3/2=3.5,所以我信心满满地选了A。
然而让我无语的是,老爹的答案一开始是A,然后划了再选择的D。
这是什么神操作?
「老爹老爹,你做这道题的时候是不是失恋了啊?这都能够改错?」
「别急别急,我先瞅瞅。」
老爹目光在那道题上一扫而过,随后就笑了起来。
「这道题的确选D。」
「纳尼?那选D的话,B错哪儿了?而且你居然告诉我2+3/2=3,你数学老师的棺材板怕是都按不住了!」
我不服道。
「皮痒痒了是不是?敢这么说你的师公们,你个欺师灭祖的兔崽子不怕打雷么?」
老爹沉下脸说道。
意识到自己说错了话,我在心里吐了吐舌头。然后急忙更正:「教你数学的师公们都能被你气得吐出一升血。」