C 语言变量类型
对于 C 语言的变量类型这里有两种说法:
一种是只包含基础的变量类型,如整数型,浮点型等;另外一种则是在上述类型的基础上还包含了一些用户可以定义的复合的类型,如 array,structure 等等。
我们这里只介绍大家通常意义上所认识的前一种基本的 C 语言数据类型。更为复杂的这些数据组合的结构,我们会在后面单独列出。
1. 变量类型
因为 C 语言与需要编译之后才能执行,所以需要对变量指定类型后才能使用。因为 C 语言会对不同的数据类型分配不同的内存大小,这就是为什么 C 语言需要指定数据类型,而诸如 PHP, Python 这样的语言不需要指定。指定大小的好处是可以让程序处理起来更快,内存的开销更小。
变量类型列表
类型 存储长度 数值范围
char 1 byte -128 to 127
unsigned char 1 byte 0 to 255
signed char 1 byte -128 to 127
int 4 bytes -2,147,483,648 to 2,147,483,647
unsigned int 4 bytes 0 to 4,294,967,295
short 2 bytes -32,768 to 32,767
unsigned short 2 bytes 0 to 65,535
long 8 bytes -9223372036854775808 to 9223372036854775807
unsigned long 8 bytes 0 to 18446744073709551615
对于用科学计数法表示的类型还涉及到小数可以表示的精度,也就是有效数字。请看下面的表格:
类型 存储长度 数值范围 小数点后的位数
float 4 byte 1.2E-38 to 3.4E+38 6
double 8 byte 2.3E-308 to 1.7E+308 15
long double 10 byte 3.4E-4932 to 1.1E+4932 19
这里有一个程序可以输出你的计算机中的不同数据结构在内存中所占用的内存的位数。对于不同的硬件这个返回值是不同的。
在我的笔记本电脑上运行的结果如下:
CHAR_BIT : 8
CHAR_MAX : 127
CHAR_MIN : -128
INT_BIT : 4
INT_MAX : 2147483647
INT_MIN : -2147483648
LONG_BIT : 8
LONG_MAX : 9223372036854775807
LONG_MIN : -9223372036854775808
SCHAR_BIT : 1
SCHAR_MAX : 127
SCHAR_MIN : -128
SHRT_BIT : 2
SHRT_MAX : 32767
SHRT_MIN : -32768
UCHAR_BIT : 1
UCHAR_MAX : 255
UINT_MAX : 4294967295
ULONG_BIT : 8
ULONG_MAX : 18446744073709551615
USHRT_MAX : 65535
Storage size for float : 4
Strage size for double : 8
FLT_MAX : 3.40282e+38
FLT_MIN : 1.17549e-38
-FLT_MAX : -3.40282e+38
-FLT_MIN : -1.17549e-38
DBL_MAX : 1.79769e+308
DBL_MIN : 2.22507e-308
-DBL_MAX : -1.79769e+308
Float precision value : 6
Double precision value : 15
这台电脑的处理器是 x86_64 架构,也就是大家在市场上买到的家用电脑的架构。
大家可以看到这里有些数值是一样的,但是有些却不同。这就是计算机硬件上的差异,大家在使用 C 语言给硬件编程的时候一定要考虑到这点影响。