c语言类型所占字节数

Python018

c语言类型所占字节数,第1张

类型

常见的有char、int、long、short、float、double及指针等.

字符类型

这里单只char,char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,为1个字节

整数类型

查了资料发现对各个类型的整数占用字节数是有一个规定的,虽然16位32位或者64位的机子各种类型所占用的长度并不一样。规则如下:

short 至少占用2个字节。

int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。

short 的长度不能大于 int,long 的长度不能小于 int。

所以说,short并不一定短,long并不一定短,有可能都和int一样长。

浮点数(小数)

C中浮点数有两种,float和double,不像整数,小数的长度始终是固定的,float占用4个字节,double占用8个字节。

指针

C中指针即为地址,所以编辑器的寻址空间则是指针的地址范围。所以指针变量在32位机器的寻址空间为2^32,要将所有地址都表示出来则需要为4个字节长度,所以要占用4个字节长度。同理64位的编译器则需要8个字节长度。

这个要看字符数是什么数据类型,可以用sizeof(类型)操作符来测试字节数。

1、英文字母:如果是char 型,那么是占用1个字节,8位。如果是string型,应该是两个字节,16位,因为末尾还有个\0字符。

比如:

char c = 'a'//它占用一个字符

char c[] = "a"//占用两个。

char c[] = "abcde"//占用4+1 = 5 个,结尾有一个'\0'

2、数字:有很多种类,从小到大分别为:

short、int、float、long、double

字节为:1个、2个、4个、8个、8个

位数为:8位、16位、32位、64位、64位

3、汉字:理论上说,一个汉字占用两个字节,16位。比如:中国,就占用4个字节,例如:

char c[] = "中国"//占用4+1 = 5个字符

在C/C++语言中,int和long int的所占的字节数与编译器有关。

不过现在常用的编译器多认为int和long int相同,均为4字节,short为2字节,char为1字节。

如果只输入int,它是可以包含以上三种形式。

不同的语言不太一样,例如在Pascal中integer为2字节,byte为1字节,而longint为4字节。

建议您最好参考您的编译器的具体帮助,以得到更准确的信息。

使用前最好sizeof(int) 看看当前编译器如何定义的。

依据程序编译器的不同,int定义的字节数不同。(数据占用内存储器的大小不同)

常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个字节(16位);如果是32位RAM处理器的C语言中,则int代表4个字节(32位)

PIC单片机的PICC中8位系列单片机的C语言里int表示16位。

而不少PC端软件的编译器则会根据操作系统或处理器(如64位XP)把int定义为8字节(64位)

所以在多平台上编程的人员需要在使用时注意。

如需定义16位数,可使用short(短、短整数类型)定义。

扩展资料:

在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。

在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]。

使用printf输出int占用字节数量:

除了int类型之外,还有short、long、long long类型可以表示整数。

unsigned int 表示无符号整数,数据范围为[0~2^32-1]。

参考链接:INT(数据类型)_百度百科