当前位置: 首页 > news >正文

C语言学习完整路线笔记:前置基础 + 全部数据类型详解

这段时间系统梳理了嵌入式C语言的学习大纲,从前期必备的计算机底层常识,到每一种基础数据类型的内存规则、取值范围全部整理出来,完全是课堂手写笔记改编,适合零基础循序渐进学习。

一、C语言整体学习大纲

整套C语言一共分为9个学习模块,也是嵌入式开发必须全部掌握的内容:

1. 基本数据类型、表达式与运算符

2. 标准输入与输出函数

3. 流程控制:分支结构、循环结构

4. 自定义函数编写

5. 数组用法

6. 指针(C语言核心难点)

7. 构造数据类型

8. 内存管理与位运算

9. 程序调试方法

二、学习C语言前必备储备知识

想要学好C语言,一定要先弄懂计算机底层运行逻辑,一共三块内容。

1. 计算机组成与程序运行原理

计算机由五大部件构成:运算器、控制器、存储器、输入设备、输出设备。

CPU负责执行指令,程序存放在硬盘里,运行时加载到内存,同时还有高速缓存Cache用来提升读写速度。

2. 计算机存储单位换算

• bit:二进制位,只有0和1两种状态

• byte:字节,内存基本存储单位,8 bits = 1 byte

• 递进换算规则(相邻单位倍率1024)
1024 bytes = 1KB
1024 KB = 1MB
1024 MB = 1GB
1024 GB = 1TB

3. 四种进制规则

• 二进制:取值 0、1

• 八进制:取值 0~7

• 十进制:取值 0~9

• 十六进制:取值 0~F

三、C语言数据类型整体分类

C语言的数据类型分成三大类:基本数据类型、构造数据类型、指针类型。
其中基本类型又细分为:整型、字符型、浮点型、空类型;泊尔类型需要引入头文件才能使用。

(一)整型类型(Ubuntu 64位系统)

整型分为有符号signed(包含正数、负数、0)和无符号unsigned(只有大于等于0的数字),最高位是符号位,其余位置为数值位;有符号数依靠补码存储,无符号数原码和补码一致。
关键字sizeof()可以查询任意类型占用的字节数量,结果返回整型数字。

1. short 短整型(占用2字节)

• unsigned short:范围 0 ~ 65535

• signed short:最大值32767,最小值-32768
规律:无符号整型达到最大值再加1,会跳转到最小值;无符号最小值减1,自动变成最大值,也就是数据溢出。

2. int 基本整型(占用4字节)

• unsigned int:最大值 2³²-1,最小值0

• signed int:最大值2³¹-1,最小值 -2³¹

3. long 长整型(占用8字节,一般情况long字节数大于等于int字节数)

• unsigned long:最大值 2⁶⁴-1

• signed long:最大值 2⁶³-1,最小值 -2⁶³

(二)字符类型 char(占用1个字节)

用来存放字母、符号、转义字符,例如 a~z、A~Z、'0'~'9'、\n换行符等。

• unsigned char:范围 0 ~ 255

• signed char:最大值127,最小值-128

(三)浮点类型(存放小数,遵循IEEE存储标准)

1. float 单精度浮点型
占用4个字节,有效精度6~8位;内存结构:1位符号位 + 8位指数位 + 23位尾数位。

2. double 双精度浮点型
占用8个字节,有效精度12~16位;内存结构:1位符号位 + 11位指数位 + 52位尾数位。
重要注意点:浮点数在内存存储时会存在精度丢失问题。

(四)空类型 void

两种使用场景:

1. 用在函数形参和返回值:代表不需要传入参数、没有返回数据

2. void* 万能指针,可以接收任意类型地址,是嵌入式里常用写法

(五)泊尔类型 bool

占用1字节,true等价于数字1,false等价于数字0;
使用时必须导入头文件:#include <stdbool.h>

http://www.jsqmd.com/news/1245933/

相关文章:

  • TMS470 ZPLL时钟抖动对CAN总线通信影响的量化分析与工程实践
  • 卡地亚香港2026年7月最新售后电话+网点地址权威攻略 - 卡地亚服务中心
  • 系统架构设计师认证:技术人职业跃迁的关键路径
  • WMI定时脚本病毒检测与清除指南
  • 经典Visual C++教材的现代学习指南:从MFC框架到Windows编程思想
  • 智绘安澜水网,数筑水利新程 —— 黎阳之光智慧水利平台提升解决方案
  • GPT-5.6 代码解释能力详测:准确性、逻辑层次和可读性分析
  • Unity Render Streaming与WebRTC集成:实现低延迟3D内容实时流化
  • Kimi K3与Claude大模型对比:核心能力、API调用与成本效益分析
  • AI API限流机制与Key管理最佳实践
  • UE4集成Quixel Bridge插件:一站式3D资产流式导入与性能优化指南
  • 新品发布|Tattu TA-BC无人机电池检测器上线,多通道充电状态尽在掌握
  • UE5延迟渲染优化:从G-Buffer演进到Material Culling实战
  • 深入解析TI Tiva以太网DMA:RX流程、中断机制与驱动实践
  • CDN技术解析:真伪辨别与核心特征
  • AI问答系统对比:Agent与RAG技术解析与应用
  • C++成员变量初始化:从C26495报错解析对象生命周期与内存安全
  • 命令行控制Chrome:Hermes工具实现本地会话接管
  • 2026年ALM工具哪个好用?8款主流产品对比与选型指南
  • Qwen3.8-Max-Preview 2.4T参数开源:大模型部署与量化技术解析
  • C++二叉树深度优先搜索(DFS)详解:从递归到迭代与实战应用
  • TI DSP性能优化实战:循环变换与SIMD指令提升嵌入式视觉处理效率
  • C++性能优化指南:从核心原则到工程实践
  • 深入TM4C1294寄存器:Flash与EEPROM底层操作与安全配置实战
  • Unity AR二维码扫描:Vuforia图像捕捉与ZXing.Net后台解码实战
  • TM4C1294NCPDT外设全景解析:从CRC到系统集成的嵌入式实战
  • 2026年7月宇舶徐州最新地址及客户服务热线公告 - 亨得利官方服务中心
  • AI智能体会话管理优化:分布式总线与冲突解决方案
  • Unity游戏开发:五款免费插件彻底解决贴图马赛克问题
  • Godot引擎实战:三步实现游戏音乐波形可视化特效