一.类型转换原则

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

二.强制类型转换

大家学习了上面的自动类型转换其实也发现了这种转换的类型。不确定性会给程序的允许造成想不到的影响。所以在非要进行类型转换时,我们最好使用强制类型转换,把类型转换为我们所设想的类型。

使用就是

在量的前面放置用圆括号括起来的需要强制转换的类型名,我们来看个例子。

也可以这样


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈