1.11 数据类型

视频讲解

前面我们比喻变量就是在内存里边挖一个“坑”,然后给这个“坑”命名,那么数据类型指的就是这个坑的尺寸。C语言允许使用的数据类型如图1-12所示。

图1-12 数据类型

目前为止我们已经接触了整型int,浮点型float、double,还有字符型char。除此之外,还有一个枚举类型,这个以后用到了再介绍。

另外,C99标准还补充了一个布尔类型:_Bool。布尔类型就是只表示两个值:真或假,也就是true或false。对于人类来说,世事无绝对,但计算机可不一样,要么“是”,要么“否”,绝不会存在模棱两可的情况。所以,这个布尔类型的补充,对于C语言的发展来说就非常重要了。

【扩展阅读】大家可能觉得奇怪,为何这个类型跟其他类型不一样呢?在C99的标准中我也没有查到相关的说明,所以写了一些自己的猜想,大家可访问http://bbs.fishc.com/thread-67033-1-1.html或扫描图1-13所示二维码进行查阅。

图1-13 为什么C99新增加的布尔类型叫_Bool

C语言包含了5种基本数据类型,如图1-14所示。

图1-14 基本数据类型

我们还可以为这些基本数据类型加上一些限定符,如表示长度的short和long。比如,int经过限定符修饰之后,可以是short int, long int,还可以是long long int,其中的long long int是C99新增加的。

这里需要说明的是,C语言并没有规定int具体的尺寸是占多少字节,标准只是要求:short int <= int <= long int <= long long int。

这样约定的好处就是使得C语言可以长久使用。现在的主流CPU是64位,可以预测不久的将来会推出128位甚至256位的CPU,但是在C语言刚刚出现的时候,CPU还是以8位和16位为主。如果那时候就将整型定死为8位或16位,那么现在我们肯定不会再学习C语言了。虽然你现在也许还不了解8位和64位对于一个程序来说意味着什么,不过光听这些数字的差距,都觉得8位要低很多了,对不对?