在C语言中,double、long、unsigned、int、char类型数据所占字节数


  1. 和机器字长及编译器有关系:  
  2. 所以,intlong intshort int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):   
  3. sizeof(short int)<=sizeof(int)   
  4. sizeof(int)<=sizeof(long int)   
  5. short int至少应为16位(2字节)   
  6. long int至少应为32位。   
  7.   
  8. unsigned 是无符号的意思。  
  9.   
  10. 例如:  
  11. 16位编译器  
  12. char :1个字节  
  13. char*(即指针变量): 2个字节  
  14. short int : 2个字节  
  15. int:  2个字节  
  16. unsigned int : 2个字节  
  17. float:  4个字节  
  18. double:   8个字节  
  19. long:   4个字节  
  20. long long:  8个字节  
  21. unsigned long:  4个字节  
  22.   
  23.   
  24. 32位编译器  
  25.   
  26. char :1个字节  
  27. char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)  
  28. short int : 2个字节  
  29.   
  30. int:  4个字节  
  31. unsigned int : 4个字节  
  32. float:  4个字节  
  33. double:   8个字节  
  34. long:   4个字节  
  35. long long:  8个字节  
  36. unsigned long:  4个字节  
  37.   
  38. 64位编译器  
  39. char :1个字节  
  40. char*(即指针变量): 8个字节  
  41. short int : 2个字节  
  42. int:  4个字节  
  43. unsigned int : 4个字节  
  44. float:  4个字节  
  45. double:   8个字节  
  46. long:   8个字节  
  47. long long:  8个字节  
  48. unsigned long:  8个字节 

下面给出一个表格,方便查看个类型的字节数:

类型16位32 位64位
char111
short int222
int244
unsigned int244
float444
double888
long448
long long888
unsigned long448

首先来看字符类型,这里单指char , char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,不管在哪种编译器下,均为1个字节。

再来看 浮点类型,C中的浮点类型有俩种,float和double,与整数不同的是,浮点数的长度适中的固定的,float占用4个字节,double占用8个字节。

最后来看 整型类型,查阅资料后发现虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI/ ISO制定):

  • short 至少占用2个字节
  • int 建议为一个机器字长,32位环境下为4字节,64位环境下为8字节
  • short 的长度不能大于int, long 的长度不能小于int
  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值