C语言的数据类型介绍

在c语言中数据分为内置数据和自定义数据2种;

内值数据类型分为字符型(char),整型(int),浮点数型(float),还有布尔类型(_Bool);

字符型

char

signed char

unsigned char

整型

//短整型

short

signed short

unsigned short

//整型

int

signed int

unsigned int

//长整型

long

signed long

unsigned long

//更长的整型

long long

signed long long

unsigned long long

浮点数类型

//单精度浮点数

float

//双精度浮点数

double

//精度更高的浮点数

long double

这里的signed和unsigned表示的是有符号和无符号的整型;

signed里面是可以包含零和正负数的,而unsigned只能包括0和正数;

而这也代表数据所能包含的内存最大值有所不同;

每个数据的所能存储的数据类型长度也是不同的,接下来我们来看一组代码:

这里我们用到了一个关键字sizeof,sizeof是用来专门计算操作数类型的长度的,它的单位是字节(byte)。(sizeof的返回值类型是无符号类型,c语言给它规定为size_t类型,返回值用%zd表示,也可用%u)。

 计算机中的单位有bit,byte,kb,mb,gb,tb,pb,换算单位如下:

我们可以看到每个数据类型所能够存储的长度是不一样的,其中c语言规定long int >=int即可;

如果我们在sizeof的后面放上一个表达式呢?

前面我们提到了sizeof是一个用来计算操作数的类型长度的,我们给变量i赋予了一个类型为int,

那么实际上这里计算的应该是变量的数据类型长度。当我们计算表达式的类型长度时可以不用加里面的括号;

sizeof的表达式是不会参与计算:

在这里我们可能会认为最后a输出的结果会是40;

但是其实这里的表达式a=b+20.0是不会去计算的,在计算机去运行之前就已经处理掉了sizeof;

而这个表达式的字符类型长度其实是由a决定的,a的类型长度为2,也就是16个比特位;后面的2给浮点数类型相加还是浮点数,但是最后我们将一个浮点数类型数据存入了一个短整型数据,一个是16比特位一个是32比特位,最后存入的数据放不下会有溢出,最后只会留下32个比特位中的16个比特位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值