在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统,其中函数的类型指的是函数返回值的类型。对象的类型决定该对象可取值的集合以及可以对该对象执行的操作。
基本数据类型
C语言提供了下列几种基本数据类型
- char 字符型,占用一个字节,可以存放本地字符集中的一个字符。
- int 整型,占用四个字节,通常反映了所用机器中整数的最自然长度。
- float 单精度浮点型,占用四个字节。
- double 双精度浮点型,占用八个字节。
字符型
下表列出了关于字符类型的存储大小和值范围的细节:
类型 | 存储大小 | 取值范围 |
---|---|---|
char | 1字节 | -128到127或0到255 |
unsigned char | 1字节 | 0到255 |
signed char | 1字节 | -128到127 |
整型
下表列出了关于整数类型的存储大小和值范围的细节:
类型 | 存储大小 | 取值范围 |
---|---|---|
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
注:当用long
或short
限定符限定整型时,关键字int
可以省路,通常很多人也习惯这样做。
浮点型
下表列出了关于标准浮点类型的存储大小、值范围和精度的细节:
类型 | 存储大小 | 取值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位小数 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位小数 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
注:上述内容皆适用于常见的64位系统,对于其他具体机器,可能会出现不同存储大小。
补充说明
short
与long
两个限定符的引入可以为我们提供满足实际需要的不同长度的整型数。int
通常代表特定机器中整数的自然长度。编译器可以根据硬件性能特性自主选择合适的类型长度,但要遵循下列限制:short
与int
类型至少为16位,二long
类型至少位32位,并且short
类型不得长于int
类型,而int
类型不得长于long
类型。
类型限定符signed
与unsigned
可用于限定char
类型或任何整型。unsigned
类型得数总是正值或0,并遵守算数模2^n,其中n是该类型占用的位数。例如,如果char
对象占用8位,那么unsigned char
类型变量的取值范围是0~255,而signed char
类型变量的取值范围则为-128~127(在采用二进制补码的机器上)。不带限定符的char
类型对象是否带符号取决于具体的机器,但可打印字符总是正值。
long double
类型表示高精度浮点数。同整型一样,浮点型的长度也取决于具体的实现,float
、double
与long double
类型可以表示相同的长度,也可以表示两种或三种不同的长度。
有关这些类型长度定义的符号常量以及其他与机器和编译器有关的属性可以在标准头文件<limits.h>
与<float.h>
中找到。
网友评论