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 类型变量的地址 |
| 数组指针 |
本文深入探讨C语言数据类型架构,详细阐述整型在内存中的存储,包括原码、反码、补码的概念,以及大小端存储模式。通过对整型和浮点数的实例分析,揭示数据在内存中的存储方式,帮助读者理解C语言数据存储的原理。
最低0.47元/天 解锁文章

2504

被折叠的 条评论
为什么被折叠?



