学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 表示 空类型无类型):通常应用于函数的返回类型函数的参数指针类型


相关文章
|
27天前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
56 11
|
2月前
|
监控 算法 应用服务中间件
“四两拨千斤” —— 1.2MB 数据如何吃掉 10GB 内存
一个特殊请求引发服务器内存用量暴涨进而导致进程 OOM 的惨案。
|
2月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
96 1
|
2月前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
24天前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
200 1
|
14天前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
23天前
|
Java
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80
|
24天前
|
Java
JVM运行时数据区(内存结构)
1)虚拟机栈:每次调用方法都会在虚拟机栈中产生一个栈帧,每个栈帧中都有方法的参数、局部变量、方法出口等信息,方法执行完毕后释放栈帧 (2)本地方法栈:为native修饰的本地方法提供的空间,在HotSpot中与虚拟机合二为一 (3)程序计数器:保存指令执行的地址,方便线程切回后能继续执行代码
19 3
|
24天前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
45 1
|
1月前
|
Arthas 监控 Java
JVM进阶调优系列(9)大厂面试官:内存溢出几种?能否现场演示一下?| 面试就那点事
本文介绍了JVM内存溢出(OOM)的四种类型:堆内存、栈内存、元数据区和直接内存溢出。每种类型通过示例代码演示了如何触发OOM,并分析了其原因。文章还提供了如何使用JVM命令工具(如jmap、jhat、GCeasy、Arthas等)分析和定位内存溢出问题的方法。最后,强调了合理设置JVM参数和及时回收内存的重要性。