学C的第二十二天【深度剖析数据在内存中的存储:1. 数据类型介绍;2. 整型在内存中的存储】-1

简介: 1. 数据类型介绍(1). 基本的内置类型(C语言自带类型):

1. 数据类型介绍

(1). 基本的内置类型(C语言自带类型):

char        --        字符数据类型        --        1字节

           

short        --       短整型        --        2字节

int        --        型        --       4字节

           

long        --        长整型        --        4字节 或 8字节            

sizeof(long)        >=        sizeof(int)

           

long long        --        更长的整型        --       8字节

           

float        --        单精度浮点数        --        4字节

           

double        --       双精度浮点数        --       8字节

类型的意义:

         

1. 使用这个类型开辟内存空间的大小(大小决定了使用范围    

                                   

2. C语言规定了:sizeof(long) >= sizeof(int),所以long的大小可以是4字节8字节

             

3. 把整型分为短整型、整型和长整型的原因:有些整型数据可能比较小,使用short就够了,如:年龄。short的范围:-32768 ~ 32767

image.png

4. 对于整型类型,还分为 有符号(signed) 无符号(unsigned)

(2). 类型的基本归类:

             

整型类型:(只有整型分有符号和无符号)

char              

unsigned char

signed char

(字符存储时,存储的是ASCII码值,是整型,所以归类时把char放在整型类型中)

(直接写成 charsigned char 还是 unsigned char不确定的,取决于编译器)              short

unsigned short [int]

signed short [int]        ==        short [int]

(    [int]通常会省略掉    )int

unsigned int

signed int        ==        int

           

long

unsigned long [int]

signed long [int]        ==        long [int]

(    [int]通常会省略掉    )

long long

unsigned long long [int]

signed long long [int]        ==        long long [int]

(    [int]通常会省略掉    )

signed:二进制位的最高位符号位其它位都是 数值位

unsigned:二进制位的最高位也是 数值位,即所有位都是 数值位

例如(其它整型类型以此类推):

           

signed char 范围是:-128~127补码:10000000无法转换为原码,被直接当成-128

7978317637db47018d705f882d596c52.png

unsigned char 范围是:0~255,8位全是数值位,无负数


12d43f83eea8403e9e875104316df73b.png

浮点数类型:

float

           

double

         

long double

构造类型(自定义类型):

           

数组类型          

数组的元素个数数组的类型 发生变化时,数组类型就不一样了:)

int arr1[10];        类型是        int [10]

int arr2[5];        类型是        int [5]

 char arr3[5];        类型是        char [5]

(这是三个不同的数组类型)

    结构体类型 struct

     

枚举类型 enum

     

联合类型 union

 

指针类型:

int* pi;

         

char* pc;

         float* pf;

         

void* pv;

空类型:

void 表示 空类型无类型):通常应用于函数的返回类型函数的参数指针类型


相关文章
|
20天前
|
监控 算法 应用服务中间件
“四两拨千斤” —— 1.2MB 数据如何吃掉 10GB 内存
一个特殊请求引发服务器内存用量暴涨进而导致进程 OOM 的惨案。
|
20天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
41 1
|
24天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
26天前
|
监控 Java easyexcel
面试官:POI大量数据读取内存溢出?如何解决?
【10月更文挑战第14天】 在处理大量数据时,使用Apache POI库读取Excel文件可能会导致内存溢出的问题。这是因为POI在读取Excel文件时,会将整个文档加载到内存中,如果文件过大,就会消耗大量内存。以下是一些解决这一问题的策略:
61 1
|
4月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
276 14
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
360 0
|
28天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
37 4
|
1月前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
51 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
1月前
|
存储 机器学习/深度学习 人工智能
数据在内存中的存储
数据在内存中的存储