学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放在整型类型中)

(直接写成 char 是 signed 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 表示 空类型(无类型):通常应用于函数的返回类型、函数的参数、指针类型。


相关文章
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3891 0
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
1282 1
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1828 0
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
808 12
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
1335 1
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
1260 0
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
329 4