2.2.1 数据类型
C语言处理的数据,根据其特定的形式是有类型之分的,所以C的各种类型所能表示的数据是有范围的,如果将超出其范围的数据放入其中,就会产生数据的“益出”。就像容量1升的瓶子只能装1升的水一样,超出部分就会“溢出”,编程者在程序设计中应选择合适的数据类型,以防止这种错误的发生。C语言提供了丰富的数据类型,满足存放各种数据的需要。C语言规定,在程序中所使用的每一个数据都属于下列一种类型之一:
著名计算机专家沃思(Nikiklaus Wirth)提出一个公式:
程序 = 数据结构 + 算法
即编程者必须考虑和设计数据结构及数据的组织形式、算法及操作步骤。本章介绍C语言的基本数据类型,帮助我们在编程时正确地定义数据的类型即数据描述。
2.2.2 基本数据类型
- 整型
整型数据分为基本整型int, 短整型short和长整型long三种。
整型数据中,按数据是否带符号,又分为有符号证书和无符号unsigned整数。
整数在计算机内部使用该数的二进制补码形式存放。其中首位是符号位,“0”或“1”分别表示正数和负数。对于正整数,其原码,反码,补码相同。负整数的反码为其原码除符号位外按位取反(即0改为1,1改为0),而其补码为其反码末位加1.
+19的补码为:0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1
-19的原码为:1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1
-19的反码为:1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
-19的补码为:1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1
类型 | 存储大小 | 值范围 |
---|---|---|
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 |
由于不同的系统数据类型所占存储空间长度由差异,因此C语言提供了一个测定数据类型所占存储空间长度的运算符“sizeof”,它的格式为:sizeof(类型标识符) 或 sizeof(变量名)
例如,sizeof(int), sizeof(long)可以计算出当前系统的int类型和long类型所占的存储空间字节数。
2. 实型
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位有效位 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位有效位 |
3. 字符型
字符类型的数据(如字’A’,”a,’0′,’$’)在内存中以相应的ASCII码存放,不用字符所对应的ASCII码见附录。
计算机用一个字节(8个二进制位)存储一个字符,例如 ‘A’的ASCII码是65,内存中存放即为01000001。
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
コメント