胖蔡说技术
随便扯扯

C语言中八种基础数据类型

前言


C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而TuborC下则是2个字节。

原则


所以intlong intshort int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):

  • sizeof(short int)<=sizeof(int)
  • sizeof(int)<=sizeof(long int)
  • short int至少应为16位(2字节)
  • long int至少应为32位。

编辑器位数


16位编译器

  • char :1个字节
  • 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个字节

附录


C 中只提供了下列几种基本数据类型:

  • char:字符型,占用一个字节,可以存放本地字符集中的一个字符
  • int:整型,通常反映了所有机器中整数的最自然长度
  • float:单精度浮点型
  • double:双精度浮点型

此外,还可以在这些基本数据类型前面加上一些限定符。shortlong两个限定符用于限定整型:

short int sh;
long int lh;

上述这种类型的声明中,关键字int可以省略。

类型限定符signedunsigned可用于限定char类型或任何整型。unsigned类型的数总是正值或0,并遵守算术模2^n定律,其中n是该类型占用的位数。如,char对象占用8位,那么unsigned char类型变量的取值范围为0~255,而signed char类型变量的取值范围则为-128~127(在采用对二的补码的机器上)。不带限定符的char对象是否带符号则取决于具体机器,但可打印字符总是正数。

 有关这些类型长度定义的符号常量以及其他与机器和编译器有关的属性可以在标准头文件<limits.h><float.h>中找到。

赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » C语言中八种基础数据类型
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏