![零基础入门学习C语言:带你学C带你飞](https://wfqqreader-1252317822.image.myqcloud.com/cover/676/26125676/b_26125676.jpg)
1.11 数据类型
![](https://epubservercos.yuewen.com/701183/14565324404897806/epubprivate/OEBPS/Images/Figure-P30_53896.jpg?sign=1738809750-VjL0bggsRY7CJIvWhCQKg8L5xDvCXBTi-0-f853515fadb9435d03434a0d8359d9f6)
视频讲解
前面我们比喻变量就是在内存里边挖一个“坑”,然后给这个“坑”命名,那么数据类型指的就是这个坑的尺寸。C语言允许使用的数据类型如图1-12所示。
![](https://epubservercos.yuewen.com/701183/14565324404897806/epubprivate/OEBPS/Images/Figure-P30_53891.jpg?sign=1738809750-JIBXJR1PFzrciWLDeM6A6IjsUyY5z5qU-0-391db42793ffc09fdc150b89d021e5d7)
图1-12 数据类型
目前为止我们已经接触了整型int,浮点型float、double,还有字符型char。除此之外,还有一个枚举类型,这个以后用到了再介绍。
另外,C99标准还补充了一个布尔类型:_Bool。布尔类型就是只表示两个值:真或假,也就是true或false。对于人类来说,世事无绝对,但计算机可不一样,要么“是”,要么“否”,绝不会存在模棱两可的情况。所以,这个布尔类型的补充,对于C语言的发展来说就非常重要了。
【扩展阅读】大家可能觉得奇怪,为何这个类型跟其他类型不一样呢?在C99的标准中我也没有查到相关的说明,所以写了一些自己的猜想,大家可访问http://bbs.fishc.com/thread-67033-1-1.html或扫描图1-13所示二维码进行查阅。
![](https://epubservercos.yuewen.com/701183/14565324404897806/epubprivate/OEBPS/Images/Figure-P31_53911.jpg?sign=1738809750-0zqFmdGmd3Z6QW7viI2lX4ofsGOCxYVv-0-c3af73a40ea8d3ef2a25f91499caefec)
图1-13 为什么C99新增加的布尔类型叫_Bool
C语言包含了5种基本数据类型,如图1-14所示。
![](https://epubservercos.yuewen.com/701183/14565324404897806/epubprivate/OEBPS/Images/Figure-P31_53915.jpg?sign=1738809750-PvW6B2cf5av5kXFas6yG7tPB8NP6SvyV-0-0d6ab0a258a78e7d09f638bbb4441fb9)
图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位要低很多了,对不对?