关于数据存储的那些事1

数据,异父异母的亲兄弟?

Part1:数据类型 内置 自定义 构造 意义 内存空间 视角

C语言数据类型大致可以分为两类,内置类型:char,int,long,long long,float,double

自定义类型,也称为构造类型。这些类型有什么意义呢?想象一下,我们有一堆数据,要把他们存放到电脑里边去,电脑只有010101010    ……的信号,可以用二进制来表示,但二进制表示又太长了,于是用16进制来表示它们。整数的问题解决了,但是小数和符号要如何存放呢?

有人就想出来了一个法子:我们可以用不同的规则来存放它们,自己设计一套算法将小数转换为整数存放进去,同时用某种方法标记这个数据,让我们知道这是一个小数,使用它时再根据算法转换为小数输出,而且这些可以让电脑执行,我们只需要有一套算法就可以,现在小数问题解决了,符号该怎么办?嘿,既然小数可以用整数存放,符号为什么不行呢?我们将所有符号收集起来,以某种顺序排成一列,然后依次给它们用整数从0开始编号,再存放进电脑,同时标记:这里存放的是是符号。

现在如何存的问题解决了,新的问题来了:每次都存多大呢?有些整数需要很大的空间才能存放进去,是不是每次要放东西都需要很大一块空间呢?当然不是这样,不然的话电脑就只能存一点点数据了,不要忘了人,如果要存一个很大很大的数据,人怎么会不知道它很大呢?是的,人能分辨大部分大的数据,我们现在已经将整型,字符型,浮点型(小数),分类了,要处理这个问题,只需要在每个类别的基础上在继续分类就可以了。所以类型的意义就是方便存放数据。

Part2:

unsigned  signed 整形 -1 大小 省int 浮点型

知道数据类型分类后,来看一下它们,整形分为

Int:最基础的

Short:这个就是我们知道他很小,不用那么多空间,就搞了一个short规则放小的整数,原本是这个样子的:“short int” 为了方便就省略它了。

Long和long long:这个和short一样产生的了,之前说过了

char:是不是很惊讶?字符型怎么到整形里边来了,之前说过,对符号进行编号,再将编号存入计算机中,怎么存入?直接用整形的方法存入就可以了嘛,只需要额外标记一下这个是字符。如果你用%d输出,他会给你一个整形,用%c,他会给你那个整形对应的字符,当然只有少部分整数拥有这个“特权”。

接下来是浮点型:

float:原来是表示浮点型的,后来double出来后,就被它夺权了,在小数界地位大减,表示单精度浮点型

double:精度更高,表示双精度浮点型

最后说一下signed和unsigned,有无符号,这个看过去很容易想到ASCII中的符号,其实这只是正负符号。Signed,在一字节中,用第一位的0或1来表示该数据的正负相较于unsigned,其大小减半,但在数轴上长度不变(类似于0<x<2和-1<x<+1)。

part3:

构造 数组 结构体 枚举 联合 指针 特殊 空 返回 参数 指针

构造类型:

数组类型:之前有说过sizeof(arr)与&arr是整个数组的地址,指针进行加减是一个数组一个数组跳过的,是不是有点类型那味了,

结构体,枚举,联合,后续再学

指针类型是一个特殊的类型,回想一下数据进来需要哪些特性:空间,形式(规则)。指针类型的空间大小是固定的(初学者c指针那里有说过),其内的数据是存储单元的编号,也就是16进制编成的地址,指针自己也是分类型的,int*,char*,意义在之前也说过了。类型和值的关系值得琢磨一下,有值的存在才有了类型的分类。

空类型:什么都没有,没有值,也就没有形式,没有空间。常见于函数返回值,函数参数,指针类型。空指针类型,就是没有定义int*,char*之类的,意义就呼之欲出了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值