C语言(强制类型转换)

创作内容不易,学习的朋友麻烦关注下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时回复~~

一.类型转换原则

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

二.强制类型转换

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

使用就是

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

也可以这样


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

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

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小天才哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值