C语言进阶1:如何深入理解数据在内存中的存储,肝这篇就够了

本文深入探讨C语言数据类型架构,详细阐述整型在内存中的存储,包括原码、反码、补码的概念,以及大小端存储模式。通过对整型和浮点数的实例分析,揭示数据在内存中的存储方式,帮助读者理解C语言数据存储的原理。
摘要由CSDN通过智能技术生成

1、C语言数据类型架构

1.1 数据类型详解

在文章开头,我们先熟悉一遍C语言中包含的数据类型:

数据类型 名称 所占存储空间大小(/字节数)
char 字符数据类型 1
short 短整型 2
int 整型 4
long 长整型 4/8
long long 更长整型 8
float 单精度浮点数 4/8
double 双精度浮点数 8

在VS编译器X86(32bit位)环境下各个数据类型所占内存大小: 

 在VS编译器64bit位环境下各个数据类型所占内存大小: 

      C语言中定义这些数据类型主要方便我们根据不同的需求,了解数据类型开辟空间的大小可以更好的合理利用计算机内存,提升代码执行效率,那么如何理解并掌握C语言中数据类型是如何存储的呢?下面我将为大家进一步揭晓其中的缘由:

1.2 数据类型重定义

首先,将C中数据类型重新分类便于比较理解:

整型类型集合:

char unsigned:表示无符号类型 unsigned char
signed char
short unsigned short [int]
signed short [int]
int signed:表示有符号类型 unsigned int
signed int
long unsigned long [int]
signed long [int]

注意:

  • 字符(char)类型的本质是ASCII码值,是整型,所以将其划分为整型类型集合;
  • 在整型类型集合中,分为有符号类型和无符号类型,有符号类型表示在数据计算及运用时,需要考虑该数据二进制位的符号位;无符号类型则将该数据准换成二进制以后,则不需要考虑其符号位,直接将其当作正数看待即可;
  • 一般而言,"signed+整形类型集合"等价于"整型类型集合",但除了char类型以外,因为char类型到底是signed char还是 unsigned char标准是未定义的,取决于编译器的实现 。
  • 后面第2.2节将提供相关代码练习,便于理解。

 浮点数类型集合:

float double

构造类型集合:

数组类型 例如:arr[10],arr[],arr[10][10]
结构体类型 struct
枚举类型 enum
联合类型 nuion

指针类型集合:

字符指针 char* p 表示:该指针是为了存放类型 char 类型变量的地址
整型指针 int* p 表示:该指针是为了存放类型 int 类型变量的地址
浮点型指针 floar* p 表示:该指针是为了存放类型 float 类型变量的地址
数组指针
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值