00:00
行,那自动雷应提升呃,强制雷应转换完了以后呢,我们再呃补充着再说两个小的这个情况哈,呃小的什么情况呢?这个我再再再定义一个吧,Test这我写一个四啊CTRLCCTRLSCTRLV,诶保存一下啊,说两个小的问题啊,诶第一个问题啊,其实这是算是呃这个大家写代码的这个情况了啊,那不是算这个什么新的知识点了啊。哎,编码的实际这个情况啊,哎,比如说呢,咱们前面讲这个long的时候,说我定一个long型变量,说浪形变量需要以这个L小写的大写的结尾,结果有的同学自己写的时候,一不小心这个L忘写了,哎忘写以后呢,发现执行的时候呢,竟然没有报错。
01:09
高三哎,你看编译没报错啊,说明呢,诶,我这个浪形不加L也可以啊。怎么解释?你看是吧,确实还是可以的啊,不是说了浪形定义的时候一定要加L吗?哎,这个时候呢,其实这个变量呢,你没加的时候呢,它就把它可以认为是一个in的型了,哎,把它认为是个int型了,你这要认为是in的型了,相当于in的呢,是不是赋给一个long了,哎,数据自动力型提升了,哎所以呢,这个就没有报错啊,那嗯,哎对哎,那那我就是下不了数的,那你要是这样的呢,我这写个L1,这个数八成应该是超过int了啊CTRLS一下看看行不行。
02:22
你看对这时候呢,它你没有加L,它就把你认为呢,就是一个in得行,但是呢,这个已经超出in得的范围了,它就会报错了啊,这个叫过大的整数,哎,这个叫编译啊失败啊嗯,那你要是想让他不报错的话呢,这个时候呢,你就必须得显示的给他加上一个L了。来,保存来,再来。那这时候就没事,那什么意思呢?就是说你要是这样去定义的时候呢,它就是相当于把你当成int,就是拿四个字节去存的,你要是加上一个L的,哎,他就给你拿八个去存了,哎是这个意思啊,啊这是其中的一个情况,然后接着啊,还是这个情况里边的啊我现在呢,这个呃,定义一个float。
03:21
哎,Float呢,12.3说呢,定义的时候也必须加上一个F,那说诶你这个long都可以不加,我这个我也不想加了,这样行不行,就看着人家挺好的,然后自己也想整是吧,这个这个OK不挂了是吧?对人家没加,他当的是int浪比int大,所以可以你这没加呢,你是double double呢往float的转,那你大的往小的转了,你又报错了,哎,那就是说呢,我们float的型呢,那是一定要加上F的啊这个不加呢,肯定就报错了啊哎,这个呢,仍然是变异失盖啊啊行,这个大家写的时候呢,要注意这个问题哈,呃,这个是咱们讲这个编码情况一哈,呃呃,这个编码情况一,然后呢,下边这个啊。
04:21
编码情况二,哎,这呢涉及到一个,哎,除了变量之外的另外一个我们叫常量了,哎,常量的问题哈,呃,这呢也算是个知识点了,我这定一个BY形的变量12,我让这个B呢加上一个一。哎,你说这时候我拿什么类型去接收,对这时候呢,你可能想到那我拿一个还是一个bad型的行不行,哎,这时候呢,执行摆错误了,你看这也提示你了啊说in呢,不能转化成bad了,它就认为右边是int型啊,它为啥右边看成是int型了呢。
05:09
对,是因为一的问题啊,所以这里边呢,我们要说的就是,呃,像这个一呢,我们看成是一个常量了,不是像这是一个变量,可以不断的去变化值啊,这看成个常量,对于整形这个常量来讲,默认的是in的形啊,在这我们写一下啊,哎,整型常量默认类型为啊in特型,哎,那对应的对于浮点型常量诶,默认类型为诶大部型。啊大不行啊,那就意味着比如我这是呃,这个上面这个变异失败啊,比如我现在我还拿这个B,我去加上一个12.3,哎保存一下,哎这时候呢,你拿一个类型接收,哪怕是float。
06:06
保存哎,这时候你看都报错啊,因为我得到的是一个double,哎,你就不能转化成这个float啊,所以这个呢,编译也不够啊。哎,保存一下,哎行,哎这呢就是咱们想说的这两个事情啊,哎,就是我们前面这个规则呢,讲完以后,哎,大家在写的时候呢,可能会有一些特殊的一些情况啊呃,这里边就提到了,这个呢可以不加L啊,当然你要特别大的时候得加上啊,这个呢是必须要加上一个F的啊,不加呢,它是个double啊,如果你要非希望他要编译通过呢,是不是也只能是怎么着啊对,你在前面呢,你加上一个它。这样是不是就可以了,对啊,但是你这样写,你哪有我下边加个F方便呀。
07:00
嗯,而且呢,你这个操作呢,它其实在真正执行的时候挺复杂的啊,它先呢是你当成个double,然后你又加了一个float,他再把前面这给你砍掉,而你这要是加上一个F的话呢,直接上来就是正常啊,也有一些区别的啊行,那这块呢,我们把这个情况呢就说一下啊。
我来说两句