17-其他类型
3.4.8 其他类型
现在已经介绍完C语言的所有基本数据类型。有些人认为这些类型实在太多了,但有些人觉得还不够用。注意,虽然C语言没有字符串类型,但也能很好地处理字符串。第4章将详细介绍相关内容。
C语言还有一些从基本类型衍生的其他类型,包括数组、指针、结构和联合。尽管后面章节中会详细介绍这些类型,但是本章的程序示例中已经用到了指针〔指针(pointer)指向变量或其他数据对象位置〕。例如,在 scanf() 函数中用到的前缀 & ,便创建了一个指针,告诉 scanf() 把数据放在何处。
小结:基本数据类型
关键字:
基本数据类型由 11 个关键字组成: int 、 long 、 short 、 unsigned 、 char 、 float 、 double 、 signed 、 _Bool 、 _Complex 和 _Imaginary 。
有符号整型:
有符号整型可用于表示正整数和负整数。
- int ——系统给定的基本整数类型。C语言规定
int类型不小于16位。 - short或short int ——最大的
short类型整数小于或等于最大的int类型整数。C语言规定short类型至少占16位。 - long或long int ——该类型可表示的整数大于或等于最大的
int类型整数。C语言规定long类型至少占32位。 - long long或long long int ——该类型可表示的整数大于或等于最大的
long类型整数。long long类型至少占64位。
一般而言, long 类型占用的内存比 short 类型大, int 类型的宽度要么和 long 类型相同,要么和 short 类型相同。例如,旧 DOS 系统的 PC 提供 16 位的 short 和 int ,以及 32 位的 long ; Windows 95 系统提供 16 位的 short 以及 32 位的 int 和 long 。
无符号整型:
无符号整型只能用于表示零和正整数,因此无符号整型可表示的正整数比有符号整型的大。在整型类型前加上关键字
unsigned
表明该类型是无符号整型:
unsigned int
、
unsigned long
、
unsigned short
。单独的
unsigned
相当于
unsigned int
。
字符类型:
可打印出来的符号(如 A 、 & 和 + )都是字符。根据定义, char 类型表示一个字符要占用1字节内存。出于历史原因,1字节通常是8位,但是如果要表示基本字符集,也可以是16位或更大。
- char ——字符类型的关键字。有些编译器使用有符号的
char,而有些则使用无符号的char。在需要时,可在char前面加上关键字signed或unsigned来指明具体使用哪一种类型。
布尔类型:
布尔值表示 true 和 false 。C语言用 1 表示 true , 0 表示 false 。
- _Bool ——布尔类型的关键字。布尔类型是无符号
int类型,所占用的空间只要能存储0或1即可。
实浮点类型:
实浮点类型可表示正浮点数和负浮点数。
- float ——系统的基本浮点类型,可精确表示至少6位有效数字。
- double ——存储浮点数的范围(可能)更大,能表示比
float类型更多的有效数字(至少10位,通常会更多)和更大的指数。 long double——存储浮点数的范围(可能)比double更大,能表示比double更多的有效数字和更大的指数。
复数和虚数浮点数:
虚数类型是可选的类型。复数的实部和虚部类型都基于实浮点类型来构成:
float _Complexdouble _Complexlong double _Complexfloat _Imaginarydouble _Imaginarylong double _Imaginary
小结:如何声明简单变量
1.选择需要的类型。
2.使用有效的字符给变量起一个变量名。
3.按以下格式进行声明:
类型说明符 变量名;
类型说明符由一个或多个关键字组成。下面是一些示例:
int erest;
unsigned short cash;
4.可以同时声明相同类型的多个变量,用逗号分隔各变量名,如下所示:
char ch, init, ans;
5.在声明的同时还可以初始化变量:
float mass = 6.0E24;