Skip to content

2.3.2 基本数据类型和数据存储

2.3.2 基本数据类型和数据存储

TODO: 重写本页。

基本数据类型

在C语言中,我们可以将数据分为三大类:整型、浮点型和字符型 也就是整数、小数和字符

整型

最常用的整型是int 一个int数据占用4个字节的大小

插一嘴 如果想求一个数据占多大内存,可以用sizeof()求得

取值范围为 -2147483648~2147483647 int的格式化输出符号为%d

要创建一个整型变量,就要像下面这样声明

int a;

这样,我们就创建了一个名字为a的变量 当然,关于变量的更多,我们下一节再说,这里先简单介绍一下

除了int之外,我们还有其他整型,适配不同的需求 首先是较为常用的long long 占用8字节,取值范围为-9,223,372,036,854,775,808~9,223,372,036,854,775,807 格式化输出符号为%lld

然后是不怎么常用的long和short long占用4-8个字节(取决于在哪个系统),取值范围和int一样 因为不同系统间的兼容性差,不建议用

short占用2字节,取值范围为-32768~32767 因为取值范围太小,而且也只是比int少占用2个字节 因此除非为了极致的省内存,不推荐使用

浮点型

浮点型共有两种类型,分别是float和double 分别占用4字节和8字节 他们的区别是精度不一样 float可以精确到小数点后6-7位 double可以精确到小数点后15-16位

它们的格式化输出符号都是 %f

但对于格式化输入(如 scanf ), float 必须使用 %fdouble 必须使用 %lf

字符型

字符型只有一种,那就是char 占用一个字节,可以存储一个字符

ASCII码

ASCII码,通俗的理解为每一个字符所对应的数字 比如,26个字母分别是65-90和97-112,分别是大写字母A-Z和小写字母a-z 可以上网搜索ASCII码表,也可以把鼠标指针放在字符上直接读取

TODO: 将码表也写在这里

数据类型之间的显式类型转换

有时候,我们希望舍去小数点后面的数据,或者将字符运算转换为数字运算 我们就需要用到数据类型的显式类型转换 数据转换需要在目标前加一个括号,写上你要显式类型转换为的类型 例如,我把一个float转换为int

float f = 3.14f;
int a;
a = (int)f;

这样,a就等于3了

不过上面这样,f本身的值并没有改变 因为我们只是让a等于f被显式类型转换后的结果

数据存储

一般来讲,我们运行程序时的数据,都存储在内存中(至少我们目前阶段的数据是这样) 也就是我之前讲过的十分金贵的那部分存储空间