C语言中的数据类型及各种数据类型的长度(sizeof操作符)

C语言的数据类型有整形,字符型,浮点型,布尔型,还有自定义型。

短整型:short  2

整形:int  4

长整形:long  4

长长整形:long long  8

字符型char  1

单精度浮点型:folat  4 

双精度浮点型:double  8

长双精度浮点型:long double  8

布尔类型:bool  1

有的类型还可以细分,整形中有短整型、整形跟长整形,长长整型。浮点型有单精度浮点型、双精度浮点型、长双精度浮点型。

不同类型的长度也不同,这里的长度可以理解为视角,不同类型可以通过强制类型转换来访问其他类型的变量,int能看四位,short能看两位,假如int a = 0x11223344,用int访问是44 33 22 11用强制类型转换,(unsigned short)a,访问的值是44 33,所以说长度是一种视角。

目录

一、整形

二、字符型

三、浮点型

四、布尔型:

五、自定义类型

各种数据类型的长度


一、整形

整形中细分了以下几种短整型、整形跟长整形,长长整型

短整型:short  2

整形:int  4

长整形:long  4

长长整形:long long  8

二、字符型

字符型就一个char  1

三、浮点型

浮点型分为单精度浮点型、双精度浮点型、长双精度浮点型。

在C语言的标准规定中,单精度浮点型至少精确到小数点后6位。

双精度浮点型至少精确到小数点后10位,一般精确到13位

长双精度浮点型与双精度浮点型精度一样

单精度浮点型:folat  4 

双精度浮点型:double  8

长双精度浮点型:long double  8

四、布尔型:

布尔型是C99专门设计的用于判断对错的类型。在C语言中0代表假,非0代表真

而在布尔型变量中只有两种取值 :只有true和false

ture代表真,false代表假。

使用布尔类型要用布尔类型的头文件<stdbool.h>

#define bool _Bool
#define false 0
#define true 1

布尔类型:_Bool  1

五、自定义类型

最后就是自定义类型了,自定义顾名思义就是自己定义的类型,以上类型不能包含所有情况,有些情况就需要自己定义了

各种数据类型的长度

获得数据类型的长度需要用到sizeof操作符,sizeof单位是字节

sizeof操作符的操作数可以是类型也可以是变量还可以是表达式

sizeof(类型)
sizeof 变量
sizeof 表达式

另外,sizeof操作符返回的类型是size_t类型的。

sizeof返回无符号整数,但未规定返回什么类型,它可能是unsigned int型,unsigned float型,甚至是unsigned long long型。因此在C语言中创造了一个类型别名size_t

整形的长度:短整型short占2位,也就是说储存一个短整型要两个字节的大小。整形int占4位,长整形long占4位而long long占8位

字符型的长度:char类型挺特殊,储存时占1个字节

浮点型长度:folat占4位,double占8位,long double占8位

布尔类型的长度:_Bool与char类型一样都是占1位

int main()
{
    printf("%zd\n", sizeof(short));
    printf("%zd\n", sizeof(int));
    printf("%zd\n", sizeof(long));
    printf("%zd\n", sizeof(long long));
    printf("%zd\n", sizeof(char));
    printf("%zd\n", sizeof(float));
    printf("%zd\n", sizeof(double));
    printf("%zd\n", sizeof(long double));
    printf("%zd\n", sizeof(bool));
    return 0;
}

e73f7b7e461a4067914b69fc071f281c.png

这里用了"%zd",%d也可以用,但会报出警告,%zd是最正确的对应着size_t。

从代码运行的结果也可以看出各种类型的长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值