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。

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

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C语言sizeof函数可以用来计算一个数据类型变量所占用的字节数。它可以作用于各种数据类型,包括基本数据类型(如int,float等),结构体,数组等等。使用sizeof函数可以方便地确定某个数据类型变量所占用的内存大小,以便在程序合理地分配内存空间。同时,sizeof函数也可以用于计算数组的长度,例如sizeof(array)/sizeof(array[0])可以得到数组元素的个数。 ### 回答2: 在C语言sizeof是一个特殊的操作符,用于返回数据类型变量所占用的内存空间大小(以字节为单位)。 sizeof函数的主要作用有以下几点: 1. 确定数据类型的字节大小:sizeof可以返回数据类型的字节大小,例如sizeof(int)返回4,表示int类型占用4个字节的内存空间。这对于我们在计算内存分配、数组长度等方面非常有用。 2. 获取变量的字节大小:sizeof可以返回变量所占用的内存空间大小。例如,如果有一个整型变量x,可以使用sizeof(x)来获取x所占用的字节大小。 3. 计算数组长度:由于数组在内存是按连续方式存储的,sizeof可以用于计算数组的长度,即数组元素的个数乘以每个元素的大小。例如,如果有一个整型数组a,可以使用sizeof(a)/sizeof(a[0])来计算数组的长度。 4. 判断指针类型sizeof可以用于确定指针的类型。例如,sizeof(int*)返回指向int类型的指针的大小。 需要注意的是,sizeof是一个在编译时运算的操作符,不会实际改变程序的运行。另外,在一些情况下,sizeof可能会返回一个无法真正代表实际大小的结果,例如当应用于动态分配的内存或指向函数的指针时。 总而言之,sizeofC语言的作用是用于返回数据类型变量所占用的内存空间大小,方便我们在内存分配、数组长度计算等方面做出正确的决策。 ### 回答3: 在C语言sizeof函数是一个运算符,用于计算数据类型变量所占用的内存大小,以字节为单位。 sizeof函数的作用主要有以下几点: 1. 获取数据类型的大小:可以用sizeof函数来确定数据类型所占用的内存大小。例如,sizeof(int)可以得到int类型的大小,通常为4字节。 2. 获取变量的大小:可以用sizeof函数来获取一个变量所占用的内存大小。例如,sizeof(num)可以得到变量num的大小,取决于其类型。 3. 计算数组元素个数:可以利用sizeof函数计算数组元素的个数。例如,对于int数组arr,可以使用sizeof(arr)/sizeof(int)来得到数组的长度。 4. 计算结构体的大小:可以使用sizeof函数来获取结构体所占用的内存大小。例如,sizeof(struct Student)可以得到结构体Student所占用的内存大小。 需要注意的是,sizeof函数返回的是一个常数值,表示所占用的字节数。另外,sizeof函数在编译时计算,不会对数据类型变量进行实际的评估或操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值