本节的主要任务是解释C语言的数据类型。
1. 数据类型 1.1 什么是数据类型
数据类型其实在我们的生活中经常用到,但是在编程语言中被重新定义了,并且增加了一些新的知识,然后人们就感到困惑了。
数据类型 = 数字的类型 + 可以对该类型的数字执行的操作。
一类数字:在我们数学中指的是整数、小数等,但在C语言中分别称为整型数据和浮点数。 当然,并不是所有的C语言都在数学中使用数据类型。
对该类数字可以进行的操作:指对该类数据可以进行的操作。 例如:我们可以对整数数据进行加、减、乘、除操作,但不能对字符数据进行加、减、乘、除操作。 当然可以通过某种方式来实现。
简介: 对于编程语言来说,数据类型类似于数学中不同数字的不同处理方式。
1.2 数据类型分类 1.2.1 数据类型分类依据
我们一开始就提到,计算机只能处理0或1,这就是二进制的来源。 无论我们向计算机输入什么(视频、图片、文字……),经过软件处理后都会转化为0。 /1 才能被计算机处理。
对于编程语言来说,很多数据都是人为设定的。 当我们把这个数据输入到计算机中之后,如果我们不提前让计算机知道某个数据的长度,那么计算机将不知道它应该处理多少个0/s。 一串零的长度由1组成,所以会出现错误。
因此,不同的数据类型在内存中占用不同的存储长度来对数据类型进行分类。
这样做的好处是我们提前让计算机知道该数据是什么类型的数据,并且由于每种数据类型的长度(即计算机中的存储长度)是固定的,所以计算机会根据一定的长度来选择数据。
1.2.2 计算机存储特性
计算机的内存大致是这样的。 一般存储是按照某一行(或列)存储0/1。 当某一行(或列)已满时,后续行(列)将被移动。
内存中的每个小格子都可以存储一个0或1。
但如果我们用0/1作为单位,那就太麻烦了。 就像数学里有十、百、千、万等单位一样。 0或1的单位就像数学中的单位。 所以我们为计算机创建了一些更大的单元:
一个0/1称为一位(也称为比特),八个0/1称为一个字节(也称为字节)。 所以有一句话我们应该很熟悉:一个字节等于八位。为什么你应该熟悉这句话是因为编程语言的数据类型的数据长度是以字节为单位的。
1.2.3 常量和变量
计算机中的数据以两种形式存在:常量和变量。 具体差异请参见以下流程:
#include
#include
void main(){
int r = 3;
float L = 0;
float S = 0;
L = 2 * 3.14 * r;
S = 3.14 * r * r;
printf("半径是%d , 的圆的周长是%f ,面积是%f \n",r,L,S);
}
常量:说白了,就是硬编码在程序中的数据,无法更改。 例如上面程序中的数据2和3.14,除非修改源代码,否则不会改变。
变量:它的值可以在程序执行过程中改变。 例如,将周长和面积替换为L和S。我们给它们初始值为0,但计算后可以更改它们的值。
1.2.4 常见数据类型分类
前面我们说过数据类型的分类是根据每种数据类型占用多少字节来进行的。 所以我们可以得到以下数据类型,只列出常用的:
注:当我们说按照字节数分类时,我们指的是基本数据类型的分类。
浮点数据:(也就是我们数学中所说的小数)占用四个字节。
字符数据:占用一个字节。 (字符数据是指大写字母A~Z、小写字母a~z、数字0~9以及一些专门定义的感叹号、#号、括号等)并不是世界上所有的字符都能被C语言识别,但是我们最常见的字符只要你能输入,C语言就可以识别。 这意味着C语言中的字符已经足够了。
1.2.5 常用数据类型的扩展
以上三种常见的数据类型是最常见的。 上述三种数据类型均具有一定的扩展。 大家应该明白,所谓扩展就是存储长度的扩展。 每种类型的详细信息如下:
向左滑动
普通类型扩展类型字节数备注
int(整数)
int(自身)
本身进行比较
整数
无符号整数
短的
短整形手术
短的
无符号短整型
长的
我不想下结论
长整型
长的
我不想下结论
无符号长整型
长长
双长
长长
无符号双长
解释:
通用类型 扩展类型 字节数 有效数字 备注
漂浮
漂浮
单精度浮点
15
双精度浮点数
解释
普通类型扩展类型字节数
字符
字符
字符
这个我不解释,但是你可以理解。
1.3 数据操作
我们首先讨论数据类型 = 数字类型 + 可以对该类型数字执行的操作。
以上内容解释了一种数字的内容。 至于操作的内容,我们会在下一节格式化输入输出中进行讲解。
好了,这节就写到这里了,每次打算写的时候,都永远写不完……
注意! ! !