深度解剖数据在内存中的存储(1)

86 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情

:scissors: 写在前面

经过上篇博客的学习,你已经知道了数据的运算那数据在内存中又是如何存储的呢? 今天bug郭就带你一起学习数据在内存中的储存!

@TOC

:100: 本章重点

  1. 数据类型详细介绍
  2. 整形在内存中的存储:原码、反码、补码
  3. 大小端字节序介绍及判断
  4. 浮点型在内存中的存储解析

:book: 数据类型介绍

那些我们学过的C语言数据类型,你还记得多少,我们一起来整理一一下吧:book:

:eye:内置类型

char  //字符型 1byte
int  //整型    4byte
short//短整型2byte
long  //长整型4/8byte
long long   //更长的整型8byte
float //单精度浮点型  4byte
double//双精度浮点型8byte
//C语言中无字符串类型

类型的意义 之前的博客中已经介绍过了

  • 类型可以决定该类型的变量在内存中创建内存空间的大小
  • 类型可以决定指针访问的权限,加减指针的位移
  • ..........

我们可以根据我们变量的大小合理选择类型,创建空间大小。 在这里插入图片描述 不同的数据类型根据它们的字节大小,需要占用不同空间大小的内存空间

类型的基本归类

整型家族

char 
signed char
unsigned char
short 
signed short [int]
unsigned short [int]
int 
signed int 
unsigned int 
long 
signed long [int]
unsigned long [int]
long long
signed long long [int]
unsigned long long [int]

注意:字符型也归类为整型家族,每个类型都有有符号类型和无符号类型。

浮点数家族

float  
double

构造类型

//结构体类型 
struct
//枚举类型
enum
//联合类型
union

指针类型

char*
int*
float*
void*

空类型

void 

void空类型 通常使用在函数的参数,返回值,指针。