C语言-数据类型与表示范围
在 C语言中,数据类型用于声明不同类型的变量或函数的参数、返回值。数据类型决定了存储占用的空间,以及如何读写存储的。
关于数据类型的表示范围宽度
数据类型范围尺寸由编译器厂商根据运行目标机的硬件与系统平台定制优化,但必须遵守 ISO/ANSI 规定:
1.short 至少 16位;
2.int 至少与 short 一样长;
3.long 至少 32位,且至少与 int 一样长;
4.long long 至少 64位,且至少与 long一样长;
double 至少 64位, long double的精度 不少于 double的精度
*p.s. 具体可用 sizeof() 运算符 得到数据类型在特定硬件系统平台上准确的内存占用字节数(表示范围)。
如下列举了常见"数据类型"在 WINDOWS x86/x64平台上的表示范围的表示范围:
①基本类型:
1.数值类型
1.1整数类型【signed(默认)/unsigned】
short(short int) -短整型(2字节) 表示范围:-32768 .. 32767 或 0 .. 65535 int -整形(4字节) 表示范围:-2147483648 .. 2147483647 或 0 .. 4294967295(4字节) long(long int) -长整型(4字节) 表示范围:-2147483648 .. 2147483647 或 0 .. 4294967295(4字节) long long(long long int) -长长整型(8字节) 表示范围:-9223372036854775808 .. 9223372036854775807 或 0 .. 18446744073709551615(vc99新增,vc++6.0不支持)
1.2浮点类型【signed(总是)】
float -单精度(4字节) 表示范围:1.2E-38 到 3.4E+38 精度:6到7位 小数 double -双精度(8字节) 表示范围:2.3E-308 到 1.7E+308 精度:15到16位 小数 long double -长精度(16字节) 表示范围:3.4E-4932 到 1.1E+4932 精度:18到19位 小数
2.字符类型【signed/unsigned *警告:默认符号类型由编译器设定!】
char -字符型(1字节) 表示范围:-128 .. 127 或 0 .. 255
②构造类型
1.数组 []
占用字节:sizeof(数组数据类型) * 数量
2.结构体 struct
3.联合体 union
4.枚举 enum
③指针类型 *
占用字节:随同 int 一样,32位的寻址空间是2^32, 即32个bit,也就是4个字节。64位同理
④空类型 void