C语言各种数据结构所占的字节数

在谈到这个问题之前,即C语言各种数据结构所占的字节数,我们先来了解一下最基本的概念,字长和字节

1:字长:

计算机的每个字所包含的位数称为字长。根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不论什么情况都是固定不变的;可变字长,则在一定范围内,其长度是可变的。 

计算的字长是指它一次可处理的二进制数字的数目。计算机处理数据的速率,自然和它一次能加工的位数以及进行运算的快慢有关。如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在相同的时间内,前者能做的工作是后者的两倍。 

2:字节

字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。

字节是指一小组相邻的二进制数码。通常是8位作为一个字节。它是构成信息的一个小单位,并作为一个整体来参加操作,比字小,是构成字的单位。


在C语言中,有几种数据结构都是固定不变的,比如说:

字符类型:char     不管在那种编译器下,都是一个字节的长度。  因为char变量在内存中存储的字符对应的是ASCLL码;

浮点类型:    float占用四个字节;double占用八个字节; 

short int 占用两个字节     longlong占用八个字节      //对于16位,32位,64位编译器适用

但是,还有一些数据结构的宽度会随着编译器的不同而有所不同,但都有以下几条铁定的原则:

1       sizeof(short int)<=sizeof(int) 
2       sizeof(int)<=sizeof(long int) 
3       short int至少应为16位(2字节) 
4       long int至少应为32位(4字节)


16位编译器  :
char*(即指针变量): 2个字节
short int : 2个字节
int:  2个字节
unsigned int : 2个字节

float:  4个字节
double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节

32位编译器
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int:  4个字节
unsigned int : 4个字节

float:  4个字节
double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节

64位编译器
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int:  4个字节
unsigned int : 4个字节

float:  4个字节
double:   8个字节
long:   8个字节
long long:  8个字节
unsigned long:  8个字节 






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值