C语言数据类型与内存存储全解析
【C语言入门到精通】基础数据类型与内存存储全解析附代码示例 前言C语言作为一门经典的编程语言凭借其**执行效率高、可直接操作硬件、资源开销小、跨平台可移植性强**等特点至今仍是嵌入式、操作系统、底层开发领域的首选语言。本文将从计算机底层原理出发系统讲解C语言的基本数据类型、内存存储方式及进制转换帮助你打下坚实的编程基础。 本文适合C语言初学者也可作为复习巩固的参考资料。全文干货满满建议收藏--- 本文目录- [一、学前储备计算机是如何执行C程序的](#一学前储备计算机是如何执行c程序的)- [二、数据单位与进制转换](#二数据单位与进制转换)- [三、基本数据类型详解](#三基本数据类型详解)- [3.1 整数类型](#31-整数类型)- [3.2 字符类型](#32-字符类型)- [3.3 浮点类型](#33-浮点类型)- [3.4 空类型 void](#34-空类型-void)- [3.5 布尔类型 bool](#35-布尔类型-bool)- [四、printf 格式化输出速查表](#四printf-格式化输出速查表)- [五、课后练习](#五课后练习)---一、学前储备计算机是如何执行C程序的1.1 计算机基本组成计算机由五大核心部件组成| 部件 | 作用 ||------|------|| 运算器 | 执行算术和逻辑运算 || 控制器 | 控制程序执行流程 || 存储器 | 存储数据和指令 || 输入设备 | 向计算机输入数据 || 输出设备 | 输出计算结果 | 小贴士运算器 控制器 **CPU**此外还有GPU、NPU等专用处理器1.2 存储器的层级结构| 存储类型 | 特点 ||----------|------|| 寄存器 | CPU内部速度最快容量极小 || Cache高速缓存| 介于CPU和内存之间速度快容量小 || 内存RAM| 掉电数据丢失空间较小读写效率高价格贵 || 硬盘| 掉电数据不丢失空间大读写效率低 |1.3 程序执行流程硬盘中的 a.out二进制可执行文件↓ 加载到内存内存中的 a.out↓ CPU通过总线访问CPU 执行指令并运算执行步骤总结1. 编译器将C代码编译为二进制指令存放在硬盘上2. 执行程序时二进制文件被加载到内存中3. CPU通过总线访问内存中的数据进行运算和处理---二、数据单位与进制转换2.1 计算机中的数据单位| 单位 | 换算关系 ||------|----------|| bit位| 最小单位存储 0 或 1 ||byte字节| 1 byte 8 bits内存基本存储单位 ||KB| 1 KB 1024 bytes ||MB| 1 MB 1024 KB ||GB| 1 GB 1024 MB ||TB| 1 TB 1024 GB |2.2 常见进制| 进制 | 数码范围 | 前缀标识 ||------|----------|----------|| 二进制 | 0、1 | 无前缀或 0b || 八进制 | 0~7 | 0 开头 || 十进制 | 0~9 | 无前缀 || 十六进制 | 0~9、a~f | 0x 开头 |2.3 进制转换方法① 二/八/十六进制 → 十进制规则每一位数字 × 对应位的权值累加求和示例1二进制 → 十进制**二进制: 0011 0101权值: 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0计算: 1×2^0 0×2^1 1×2^2 0×2^3 1×2^4 1×2^5 1 0 4 0 16 32 53示例2八进制 → 十进制**八进制: 0123计算: 3×8^0 2×8^1 1×8^2 3 16 64 83示例3十六进制 → 十进制**十六进制: 0x123计算: 3×16^0 2×16^1 1×16^2 3 32 256 291② 十进制 → 二/八/十六进制规则短除法 —— 目标数不断除以进制数取余数最后**逆序**排列示例十进制 123 转换**→ 二进制: 0111 1011→ 八进制: 0173→ 十六进制: 0x7B③ 二进制 ↔ 八/十六进制快速转换| 转换方向 | 规则 ||----------|------|| 二进制 → 十六进制 | **4位**二进制 **1位**十六进制按8421编码 || 二进制 → 八进制 | **3位**二进制 **1位**八进制 |示例二进制: 0011 1100 0010 1000十六进制: 0x3C28二进制: 0 011 110 000 101 000八进制: 036050---三、基本数据类型详解C语言的数据类型分为三大类- 基本数据类型整数、字符、浮点、void、bool- 构造数据类型数组、结构体、枚举、共用体- 指针类型各种类型的指针3.1 整数类型3.1.1 整数类型分类| 类型 | 64位系统字节数 | 有符号范围 | 无符号范围 ||------|----------------|------------|------------|| short短整型 | 2字节 | -32768 ~ 32767 | 0 ~ 65535 || int整型 | 4字节 | -2^31 ~ 2^31-1 | 0 ~ 2^32-1 || long长整型 | 8字节 | -2^63 ~ 2^63-1 | 0 ~ 2^64-1 | 使用 sizeof(类型名) 可获取数据类型所占字节数#include stdio.hint main() {printf(short 占 %ld 字节\n, sizeof(short));printf(int 占 %ld 字节\n, sizeof(int));printf(long 占 %ld 字节\n, sizeof(long));return 0;}3.1.2 有符号 vs 无符号- 有符号signed最高位为符号位0正1负其余为数据位- 无符号unsigned所有位都是数据位只能表示非负数3.1.3 整数在内存中的存储| 类型 | 存储方式 ||------|----------|| 无符号整数 | 原码存储补码 原码 || 有符号正整数 | 原码存储 || 有符号负整数 | 补码存储 |补码计算方法补码 反码 1反码 符号位不变数据位按位取反示例-100signed short2字节**原码: 1000 0000 0110 0100反码: 1111 1111 1001 1011补码: 1111 1111 1001 1100 ← 内存中实际存储的值示例-2026十六进制表示原码: 1000 0111 1110 1010反码: 1111 1000 0001 0101补码: 1111 1000 0001 0110十六进制: 0xF8163.1.4 整型溢出无符号最大值 1 → 回到最小值0无符号最小值 - 1 → 回到最大值⚠️ 编程时要注意数据范围避免溢出导致的逻辑错误3.2 字符类型3.2.1 char 基础- char 占 **1字节**8位- 本质上是一种整型存储的是字符的ASCII码值3.2.2 常见字符分类| 类别 | 示例 ||------|------|| 小写字母 | a ~ z97 ~ 122 || 大写字母 | A ~ Z65 ~ 90 || 数字字符 | 0 ~ 948 ~ 57 || 转义字符 | \n换行、\t制表符、\0空字符值为0 |3.2.3 signed char vs unsigned char| 类型 | 范围 ||------|------|| signed char | -128 ~ 127 || unsigned char | 0 ~ 255 | 常用ASCII值记忆 - a 97 - A 65 - 0 48 - \0 0字符串结束标志---3.3 浮点类型3.3.1 float 与 double 对比| 类型 | 字节数 | 精度 | 组成IEEE标准 ||------|--------|------|------------------|| float单精度 | 4字节 | 6~8位有效数字 | 符号位1bit 指数位8bits 尾数位23bits || double双精度 | 8字节 | 12~16位有效数字 | 符号位1bit 指数位11bits 尾数位52bits |3.3.2 浮点数内存存储原理以 6.25f 为例float类型步骤1十进制转二进制6.25 → 二进制 110.01步骤2二进制科学计数法110.01 1.1001 × 2^2步骤3拆分各部分- 符号位0正数- 指数位127 2 129 → 二进制 1000 0001- 尾数位小数点后 1001补0到23位 → 1001 0000 0000 0000 0000 000最终内存表示0 10000001 10010000000000000000000十六进制: 0x40C80000 ⚠️ 重要注意浮点数在内存中存储可能存在**精度损失**比较浮点数是否相等时不能直接用 ---3.4 空类型 voidvoid 即空类型主要用于两个场景1. 函数的形参和返回值表示不传递参数、不返回数据void func(void) {// 无参数无返回值}2. 万能指针void * 可以指向任意类型的数据void *p; // 万能指针---3.5 布尔类型 bool- C语言本身没有内置布尔类型需要引入头文件 stdbool.h- 占 **1字节**取值为 true1或 false0#include stdio.h#include stdbool.hint main() {bool flag true;printf(bool 占 %ld 字节\n, sizeof(bool));printf(flag %d\n, flag); // 输出 1return 0;}四、printf 格式化输出速查表printf 是C语言最常用的输出函数通过格式控制符来指定输出格式| 格式符 | 对应类型 | 说明 ||--------|----------|------|| %d | int | 十进制有符号整数 || %ld | long | 十进制长整型 || %u | unsigned int | 十进制无符号整数 || %c | char | 单个字符 || %f | float | 单精度浮点数 || %lf | double | 双精度浮点数 || %s | char* | 字符串 || %x / %X | 整数 | 十六进制 || %o | 整数 | 八进制 || %p | 指针 | 地址 || %% | - | 输出百分号本身 |使用示例cint a 100;char ch A;float f 3.14f;double d 3.1415926;printf(a %d\n, a);printf(ch %c\n, ch);printf(f %f\n, f);printf(d %lf\n, d);printf(十六进制: 0x%x\n, a); 总结本文系统梳理了C语言基础数据类型的核心知识点1. 计算机基础程序从硬盘加载到内存由CPU执行的完整流程2. 进制转换二/八/十/十六进制的相互转换方法3. 整数类型short/int/long 的范围、原码反码补码、溢出问题4. 字符类型char 本质是整型ASCII码是桥梁5. 浮点类型float/double 的IEEE存储格式及精度问题6. void与bool空类型和布尔类型的使用场景掌握这些底层原理能帮助你更好地理解C语言的内存模型为后续学习指针、内存管理、结构体等进阶内容打下坚实基础。--- 如果本文对你有帮助欢迎点赞、收藏、关注后续会持续更新C语言进阶内容包括指针、数组、函数、内存管理等核心知识点。

相关新闻

Unity手游UI自适应:锚点与布局组件实战解析

Unity手游UI自适应:锚点与布局组件实战解析

1. 项目概述:为什么手游UI自适应是“基本功”也是“分水岭”做手游开发,尤其是用Unity,UI系统绝对是每个开发者绕不开的“必修课”,也是最能体现项目基本功扎实与否的地方。你可能花了很多心思在炫酷的技能特效、流畅的角色动作上…

2026/7/23 3:22:32 阅读更多 →
医疗AI多任务预测框架:从概率校准到EHR数据实战

医疗AI多任务预测框架:从概率校准到EHR数据实战

如果你正在医疗AI领域工作,特别是处理电子健康记录(EHR)数据,可能会遇到这样的困境:单一疾病预测模型在实际部署时效果总是不尽如人意。不是模型在测试集上表现不佳,而是当面对真实世界中复杂的患者群体时&…

2026/7/23 3:22:32 阅读更多 →
AI写开题报告工具哪个好?2026年主流工具对比与推荐

AI写开题报告工具哪个好?2026年主流工具对比与推荐

一、开题报告写作的三大痛点 研究生和本科生面对开题报告时,最头痛的往往不是选题本身,而是:文献综述不知从何下手、研究方法逻辑混乱、技术路线图总被导师打回重画。当你熬夜翻阅几十篇论文却依然理不出研究现状时,难免会问一句…

2026/7/23 3:22:32 阅读更多 →

最新新闻

Qwen-Audio-3.0-TTS:16种语言20种方言的多语言语音合成技术解析

Qwen-Audio-3.0-TTS:16种语言20种方言的多语言语音合成技术解析

如果你正在为多语言语音合成项目发愁,或者对当前TTS模型的语言覆盖能力不满意,那么通义最新发布的Qwen-Audio-3.0-TTS绝对值得你深入了解。这个模型不仅支持16种语言和20种方言,更重要的是,它在语音质量、情感表现和部署便利性上都…

2026/7/23 4:01:46 阅读更多 →
鸿蒙三方库 | harmony-utils之LocationUtil位置获取与订阅详解

鸿蒙三方库 | harmony-utils之LocationUtil位置获取与订阅详解

前言 位置服务是LBS应用的核心能力,如地图导航、附近搜索、运动追踪等。pura/harmony-utils 的 LocationUtil 封装了位置获取和订阅方法,帮助开发者轻松实现定位功能。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,…

2026/7/23 4:01:46 阅读更多 →
二维深度卷积网络在轴承故障诊断中的实践与优化

二维深度卷积网络在轴承故障诊断中的实践与优化

1. 二维深度卷积网络在轴承故障诊断中的应用概述轴承作为旋转机械的核心部件,其运行状态直接影响设备整体可靠性。传统基于信号处理的诊断方法(如FFT分析、小波变换)在复杂工况下存在特征提取困难、泛化能力不足等问题。二维深度卷积网络&…

2026/7/23 4:01:45 阅读更多 →
Linux的几个简单命令

Linux的几个简单命令

Linux的几个简单命令 一 nc -z -v 15.57.146.228 515 nc:netcat 网络工具 -z:扫描模式,只探测端口连通性,不发送数据 -v:verbose,显示详细过程 15.57.146.228:目标 IP 515:目标端口 端口 515 = LPD/LPR 打印服务端口(老式网络打印协议,CUPS 常用来对接 LPR 打印…

2026/7/23 4:00:45 阅读更多 →
OpenAI广告业务探索:大模型商业化与对话式广告的未来

OpenAI广告业务探索:大模型商业化与对话式广告的未来

上周,当 OpenAI 宣布其广告业务的最新进展时,我正和一位做搜索产品的朋友讨论技术变现的路径。他半开玩笑地说:“你看,连 OpenAI 都开始认真卖广告了,这大概说明光靠技术理想确实养不活一个大模型。”这让我想起几年前…

2026/7/23 4:00:45 阅读更多 →
亿级数据深度分页优化方案与实战

亿级数据深度分页优化方案与实战

1. 深度分页的本质与挑战当数据量达到亿级规模时,传统的LIMIT offset, size分页方式会变得极其低效。以MySQL为例,执行SELECT * FROM large_table LIMIT 1000000, 20时,数据库需要先扫描1000020条记录,然后丢弃前100万条&#xff…

2026/7/23 3:59:45 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻