一.类型转换原则
1.升级:当类型转换出现在表达式时,无论时unsigned还是signed的char和short都会被自动转换成int,如有必要会被转换成unsigned int(如果short与int的大小相同,unsigned short就比int大。这种情况下,unsigned short会被转换成unsigned int)。float会被自动转换成double
2.涉及两种类型的运算,两个值会被分别转换成两种类型的更高级别。
3.类型的级别从高到低依次是long double,double,float,unsigned long long,long long,unsigned long,long,unsigned int,int。例外的情况下,当long和int的大小相同时,unsigned int 比 long的级别高。之所以short和char类型没有列出,是因为它们已经被升级到int或unsigned int
4.降级:把一种类型转换成更低级别的类型
5.当作为函数参数传递时,char和short被转换成int,float转换成double
Int mice;
mice = 1.6 + 1.7 等于 3
下面我们来看一个例题。这里理解就好
首先看
f1 = i = ch = ‘C’;
‘C’的ASCII码为67,i用四个字节存储67.f1则接受由67转换的67.00
ch = ch + 1;
Ch+1,等于68,打印出来为D
i = f1 + 2 * ch;
I的运算,先2乘以ch,得到136。而为了和f1相加,136转换为浮点数,为136.0。在加上f1的值67.0得203.0,转换为int值就为203
f1 = 2.0 * ch + i;
首先ch68被转换为浮点数68.0,乘以2.i的值203也相应的转换为203.0,最后相加的339.0
ch = 1107;
ch属于char数据类型,只能存储一个字节数据,1107明显超出,所以我们%256(256为一个字节空间最大值)获得83.这是一个类型降级。至于为啥要%256,因为char的值只能在0到255之间,%之后就可以获得到后八位的内存值。
ch = 80.89;
flaot类型转为字符,变为80存储。相对应ASCII的字符为P
二.强制类型转换
大家学习了上面的自动类型转换其实也发现了这种转换的类型。不确定性会给程序的允许造成想不到的影响。所以在非要进行类型转换时,我们最好使用强制类型转换,把类型转换为我们所设想的类型。
使用就是
在量的前面放置用圆括号括起来的需要强制转换的类型名,我们来看个例子。
也可以这样
好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈