在这一节课,我们来学习C语言的一个新的知识点:数据类型。前面我们简单了解过几个数据类型,比如:int、float等等。现阶段我们就来较为详细了解一下这些数据类型。
C语言中的数据类型,在大的层面,大致分为这样几个:基本类型、构造类型、指针类型、空类型(void)。我们这一节课来讲解基本类型。
基本类型又会细分为两个小类型:数值类型和字符类型。
其中,数值类型又分为:整型、浮点型。
这样看起来有点多,有点乱。我们实际通过一段C语言代码,来大致了解一下这些数据类型的使用。如下图所示:
上图中的这段代码,第5行定义了一个字符型变量val1,第7行定义了一个短整型的变量val2,第8行定义了一个整型变量val3,第9行定义了一个长整型变量val4,第11行定义了一个单精度浮点型变量val5,第12行定义了一个双精度浮点型变量val6
C语言和其他的很多编程语言不一样,就是C语言对于数据类型占据内存的长度,并没有一个确定的“数值”,只是有一个大致的范围。
比如,针对字符型“char”来说,它的长度一般来说是一个字节。数值的范围,最小值是0---127,但是在有些编译器下,它的取值范围是-128---127,不同的编译器下,表现形式会略有区别。所以,如果我们考虑使用“负数”的情况下,尽量还是使用int类型,或者是signed char(signed表示“有符号”)。
对于short类型数据来说,通常情况下,它占据两个字节。C语言并没有明确规定short类型所占据的字节个数,只是规定short类型长度不能比char类型小,仅此而已。
对于int类型数据来说,通常情况下,它占据四个字节。但是在少数编译环境下,它是占据两个字节,和short一样多。大多数情况下它是占据四个字节,只是在C语言标准中,它所占据的内存长度,不能比short类型少。
对于long类型来说,它占据四个或者是八个字节。在C语言标准中规定,long类型占据的内存长度,不能比int类型少。
对于float类型来说,多数情况下,它占据四个字节。
对于double类型来说,多数情况下,它占据八个字节。double类型占据的内存长度,不能比float少。
上述这几个类型(char、short、int、long、float、double),看起来还是较多的。只要是我们多写写代码,时间长了就能自然而然记住了。
在这里我们重点来讲解一下“整型系列”,因为这里有一个知识点不容易理解,那就是在C语言中,“字符”和“数字”之间的关系。有一个知识点,叫作“ascii码”,就是一个数字对应着一个字符,最开始的时候,这个数值范围是0---127,后来数值扩展为了0---255了。我们常见的字符,都对应着一个数字。比如:字符“0”对应的十进制数字是48,大写字母“A”对应的十进制数字是65,小写字母“a”对应的十进制数字是97
所以说,char类型范围在int类型范围之内,使用int类型也是一样的。只是因为在很久以前,那时候硬件资源比较珍贵,能够节省一个字节都是必要的,所以出现了char类型了。但是现在硬件资源已经非常够用了,所以现在在程序开发的时候,使用int类型也是一样的。
我们可以看一下下面这一段代码:
这一段代码,第5行、第7行、第9行,就是分别使用“%c”、“%d”来显示“字符”和“数字”。字符的背后,就是对应着某一个数字。
上述代码最终显示的效果,如下图所示:
这里我们重点来理解一下:“字符”与“数字”之间的一一对应的关系。
关于C语言中的“整型系列”,就是这一点不太好理解。其他知识点都是比较好理解的。还有一个“有符号”与“无符号”的概念,由于这一节课篇幅有限,就暂时放在下一节课再来讲解吧。这一节课就暂时先讲解到这里,我们下一节课再见!
热门跟贴