C语言_强制类型转换及临时匿名变量


1、为什么要进行强制类型转换?

  • 什么是数据类型?
    数据类型说明了一个变量的属性(空间大小以及存储结构),空间大小是指变量在内存中所占字节数,存储结构说明了变量是以什么类型的存储结构在内存中存储。比如:int a;从这个语句就可以看出,变量a在内存中所占空间大小是4字节,以int类型的结构存储在内存中。

  • 接下来说为神马要进行强制类型转换?
    因为有的时候我们需要将某些类型的数据转换为另一种类型的数据,比如:float a = 10;当我们需要一个整形的10,就可以将a转换为int型 int b = (int)a;

2、强制类型转换(对于普通变量)

在强制类型转换的过程中,可能会改变空间大小,也可能改变存储结构。

2.1 改变空间大小

char a = 1;
int b = (int)a;

在这段代码中,a的空间大小是1个字节,b的空间大小是4字节,char类型与int类型都是整型的数据类型,所以相互转换其存储结构不会发生改变,只改变空间大小。这里就是将1个字节转化为4个字节

int a = 0x11223344;
char b = (char)a;

在这段代码中,a占4个字节,b占一个字节,所以将int类型转换为char类型必将丢失3个字节数据,至于会留下0x11还是留下0x44ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值