- 博客(47)
- 收藏
- 关注
原创 硬件开发2-汇编1(ARMv7-A)
本文概述了ARM汇编语言的基础知识和关键操作。主要内容包括:ARM架构特点(支持大/小端存储,默认小端)、处理器工作模式、寄存器组织和程序状态寄存器(CPSR)。重点介绍了异常处理机制,包括异常向量表的结构和功能。在汇编实现部分,详细说明了伪操作(如area、code32)和常用指令(MOV、ADD、SUB、LDR等)的语法格式和使用注意事项,特别强调了立即数的处理规则和条件标志位(NZCV)的应用。最后提供了多个实践练习,包括数值比较、跳转指令应用和循环求和等基础编程任务。这些内容构成了ARM汇编编程的核
2025-09-09 08:00:00
698
原创 硬件开发2-ARM基本概要
一、嵌入式一、嵌入式1、核心定义:以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统。能够根据用户需求(功耗、体积、可靠性)进行灵活裁剪。二、计算机系统1、软件的基本组成系统软件、应用软件2、硬件基本组成运算器、控制器、存储器、输入设备、输出设备(1)kernal内核,操作系统最核心的部分关键工作硬件资源的管理:CPU调度、内存管理、设备驱动接口系统服务的提供:提供最基础的系统调用接口,让上层的应用软件能调用硬件资源(2)内核与CPU之间的关系。
2025-09-08 22:06:13
511
原创 硬件开发1-51单片机4-DS18B20
本文介绍了DS18B20温度传感器的驱动代码实现方法。DS18B20是一款单总线数字温度传感器,具有测量范围-55℃~125℃、精度±0.5℃的特点,支持寄生供电。文章详细阐述了其硬件连接方式(P3.7引脚需接上拉电阻)和软件实现,包括复位、读写操作的核心函数(ds18b20_Reset、write_ds18b20、read_ds18b20)以及温度获取函数get_tmp的实现原理。通过UART串口将采集的温度值输出,完整代码包含main.c、ds18b20.c、uart.c和delay.c等模块。使用时需
2025-09-07 22:20:43
869
原创 硬件开发1-51单片机3-串口
UART通信技术摘要 UART是一种全双工异步串行通信接口,包含RXD和TXD两条独立信号线,实现双向数据传输。其特点包括:采用LSB低位优先传输、串行传输(抗干扰强、成本低)、波特率可调(2400-115200bps)、支持奇偶校验。通信时序包含起始位(低电平)、8位数据、校验位和停止位(高电平)。与I2C(半双工)、SPI(同步)相比,UART无需时钟线,通过预置相同波特率实现同步。实际应用需配置SCON/PCON寄存器、定时器初值及中断控制,典型参数组合如9600,8,N,1。开发中需注意HEX/文本
2025-09-04 21:46:41
603
原创 硬件开发1-51单片机2-按键、中断
本文介绍了51单片机基础外设功能与应用。首先阐述了GPIO的输入/输出模式及其水龙头类比;其次说明按键检测原理;重点讲解了中断概念、5种中断源及处理流程,包括寄存器配置方法;详细介绍了定时器工作原理及1ms定时的实现;最后解析了PWM波形生成原理和蜂鸣器驱动方式,区分了有源/无源蜂鸣器的特点。全文系统性地介绍了51单片机核心外设模块的工作原理与配置方法,为单片机开发提供了实用指导。
2025-09-03 22:41:56
957
原创 硬件开发1-51单片机1
本文介绍了嵌入式系统和51单片机的核心概念。嵌入式系统是以应用为中心的专用计算机系统,通过软硬件裁剪实现高效定制,包含处理器、存储器和操作系统等组件。51单片机作为典型嵌入式处理器,采用冯诺依曼架构,集成CPU、RAM、ROM及外设接口,具有成本低、功耗小的特点。文章详细解析了单片机内部结构(定时器、PWM、UART等)、位运算操作、程序开发流程(Keil环境配置到烧录),以及LED驱动原理(共阳/共阴接法)。最后通过点灯、呼吸灯和数码管显示等实例,展示了单片机在控制领域的应用。全文系统梳理了嵌入式开发的基
2025-09-02 21:07:37
1060
原创 网络编程5-数据库、sqlite3数据库
摘要:本文介绍了数据库的基本概念与SQLite3操作。信息是现实世界的反映,数据是其载体,数据库通过数据模型规范化组织数据。SQLite3是轻量级关系数据库,支持基本SQL操作:创建/删除表、增删改查数据,以及高级查询(WHERE、AND/OR、LIKE等)。重点讲解了SQLite3的C语言接口函数:sqlite3_open(打开数据库)、sqlite3_exec(执行SQL语句及回调处理)、sqlite3_close(关闭数据库)。编译时需链接sqlite3库,适用于嵌入式等轻量级应用场景。
2025-09-01 10:46:56
1115
原创 网络编程4-并发服务器、阻塞与非阻塞IO、信号驱动模型、IO多路复用..
本文系统介绍了并发服务器与IO模型的实现技术。在并发服务器方面,分析了单循环顺序处理与多进程/多线程方案的优缺点,后者虽能实现真正并发但存在资源开销大的问题。在IO模型部分,详细阐述了五种常见模型:阻塞IO(简单但效率低)、非阻塞IO(需轮询开销大)、信号驱动IO(异步但功能有限)、异步IO(真正全异步)以及IO多路复用(高效处理高并发)。重点剖析了select、poll、epoll三种多路复用技术的实现原理、函数接口和性能差异,特别对epoll的水平触发和边缘触发模式进行了代码级对比。最后给出了不同场景下
2025-08-30 09:04:07
634
原创 网络编程3-UDP协议
本文介绍了UDP协议的核心特点及其编程应用。UDP具有无连接、不可靠、数据报形式、开销小等特点,其数据报由8字节固定首部和可变长度数据部分组成。重点展示了基于UDP的C/S模型实现,包括客户端和服务器的函数接口设计,并通过一个聊天室示例详细说明了实现过程:采用数组管理在线客户端信息,定义登录、聊天、退出三种状态,使用结构体封装消息内容。服务器负责消息转发,客户端通过线程实现收发功能,并处理聊天室满员等特殊情况。代码示例展示了完整的UDP通信实现,包括头文件定义、客户端和服务器的核心逻辑。文章强调实际开发中需
2025-08-28 22:01:01
674
原创 网络编程2-TCP协议
本文系统地介绍了TCP协议的核心概念、连接机制及编程应用。主要内容包括:1)TCP的核心特点,如面向连接、可靠传输和字节流特性;2)三次握手和四次挥手的详细过程及其作用;3)TCP粘包问题的成因和解决方案;4)TCP报文头重要标志位;5)TCP可靠性保障机制;6)TCP编程的C/S模型及关键函数接口。文章还提供了三个实践案例:基本通信、文件传输及解决粘包问题的自定义消息结构体实现,通过具体代码展示了TCP协议的应用。
2025-08-28 00:12:19
934
原创 网络编程1-基本概念、函数接口
本文摘要:网络通信基础与编程实践 网络基础概念: IP地址(点分十进制表示)和端口号(0-65535)的用途 TCP(可靠连接)与UDP(高效无连接)协议特点对比 OSI七层模型与TCP/IP四层模型对应关系 核心编程接口: socket()函数创建通信端点 bind()绑定IP和端口 send()/recv()和sendto()/recvfrom()实现数据收发 字节序转换函数htons()等 实践示例: TCP客户端/服务器实现流程 包含socket创建、连接、绑定监听等关键步骤 配合网络调试工具完成基
2025-08-25 22:33:19
870
原创 软件编程3-进程和线程4-进程间通信-信号、消息队列、共享内存、信号灯
本文介绍了Linux系统中的进程间通信机制,主要包括信号、消息队列、共享内存和信号灯四种方式。信号用于进程间异步通信,介绍了常见信号类型及处理方式(缺省、忽略、捕捉)。消息队列通过IPC对象实现进程间数据传输,详细说明了其操作流程和接口函数。共享内存作为最高效的通信方式,通过映射内核空间实现进程间数据共享。信号灯用于同步控制,配合共享内存使用。文中提供了三个实践案例:消息队列实现双向聊天、共享内存实现读写操作以及共享内存与信号灯结合实现同步读写。每个案例都包含完整的代码实现和运行结果展示。
2025-08-20 09:31:46
848
原创 软件编程3-进程和线程4-进程间通信1-管道
本文介绍了Linux系统下进程间通信的基本概念和实现方式。主要内容包括:1)进程空间独立,是资源分配的最小单元;2)三种传统通信方式:管道(无名/有名)、信号、消息队列等系统调用;3)重点讲解了管道机制,无名管道只能用于亲缘关系进程,有名管道通过命名文件实现任意进程通信;4)给出了一个使用有名管道实现双进程聊天的代码示例,包含管道创建、读写线程以及同步处理等关键实现。该方案展示了进程间通信的实际应用方法。
2025-08-18 20:30:26
590
原创 软件编程3-进程和线程3-线程传参、通信,信号量
本文介绍了多线程编程的关键技术。在参数传递方面,可通过pthread_create的第四个参数向线程传递参数。线程属性分为可连接(需手动回收)和分离(自动回收)两种,分别通过pthread_attr_init等接口设置。线程通信主要通过共享全局变量实现,但需使用互斥锁(pthread_mutex系列函数)解决资源竞争问题。文章还分析了死锁的四个必要条件及避免方法,并介绍了信号量(sem_init等函数)的同步机制。最后通过ABC顺序打印的示例程序,演示了信号量的实际应用,其中使用sem_wait和sem_p
2025-08-18 10:45:47
593
原创 利用标准IO实现寻找文件中字符出现最多次数
2)数组利用元素下标比大小时,比较前假设第一位元素为最大或者最小,后续在循环内比较的对象是假设的这一位和 ‘i’ 对应的元素下标,满足if条件时则更新下标。再接收字符,将接收到的字符让与之对应的数组内的值+1。将文件内容接收完毕之后,选数组内元素值的最大值,就是出现过多少次,对应的序号就是就是哪个字符。3)fread函数接口,成功的返回值是读取到的对象个数,类型是size_t ,虽然这个类型是int型,我们也成size_t的意义是不再是简单的数字而是赋予这个数字是一个大小→读取到的对象的个数。
2025-08-17 16:00:22
165
原创 练习—‘‘遍历目录实现文件内容的拷贝‘‘
解3:求助后,通过循环遇见数字cnt++,结束后比较cnt和strlen(文件名)的长度是否一致,判断是否为数字文件。题目的 目的就是要内容写到文件里,所以先打开文件,找到要写入文件的内容,写进去然后再关掉文件。注意:返回值不能用指针返回,即使返回了指向的地址,函数体结束后,指向的地址内容就被回收了。-解2: 尝试过想法封装函数,有想法,但是不太会畏惧就放弃了(这个简单,可学)☆。②封装一个函数筛选找到该目标文件符合所要内容,写入m文件的内容(int型)(传参,传字符数组,name,pid,name)
2025-08-16 17:37:11
746
原创 软件编程3-进程和线程2-函数传参、线程概要、函数接口
本文摘要:线程是轻量级进程,共享进程资源但独享栈区(默认8M),是CPU调度的最小单元。与进程相比,线程切换开销更小。线程函数包括创建(pthread_create)、获取ID(pthread_self)、退出(pthread_exit)和回收(pthread_join)。练习案例展示了4个不同间隔打印任务的线程实现,包括采集(1s)、存储(2s)、显示(5s)和日志(10s)线程,通过makefile编译执行。线程结束需回收空间避免僵尸线程。
2025-08-16 09:20:33
240
原创 软件编程3-进程和线程1-进程概要、命令、函数接口
本文摘要:进程是程序动态执行的过程,包含创建、调度和消亡阶段。每个进程拥有独立的0-4G虚拟内存空间,分为用户空间(文本段、数据段、堆栈区)和内核空间。操作系统通过MMU实现虚拟地址到物理地址的转换,多进程在宏观上并行运行,微观上通过时间片轮转等调度算法实现任务切换。文章介绍了常用进程命令(top、ps、kill等)和关键函数接口(fork、wait等),特别强调要避免产生僵尸进程,即子进程结束后父进程未及时回收资源的情况。可通过父进程主动回收或让init进程收养孤儿进程来解决此问题。
2025-08-15 09:05:53
867
原创 软件编程2-IO3-文件IO、目录IO、时间相关函数接口
本文介绍了Linux系统下的文件IO和目录IO操作。文件IO部分详细讲解了基本概念、系统调用与库函数的区别,以及open/close/read/write/lseek等核心函数的使用方法。通过代码示例演示了文件偏移量定位和文件拷贝的实现。目录IO部分简要说明了目录操作的基本流程。此外,还介绍了时间相关的三类时间表示方式(time_t、struct tm和字符串时间)及其应用场景。文章内容涵盖Linux系统编程中的基础IO操作,为开发者提供了实用的编程参考。
2025-08-13 21:02:12
824
原创 软件编程2-IO2-标准IO
本文介绍了C语言文件操作相关函数和编程实践。主要内容包括:1)文件读写函数fwrite和fread的使用;2)文件流定位函数fseek、ftell和rewind;3)5个文件操作练习:统计文件行数、实现文件拷贝、获取文件长度、读取BMP图片宽高、图片拷贝。每个练习都提供了完整的代码实现,涉及文件打开、读写、定位等操作,并包含错误处理。文中特别强调了文件操作中的注意事项,如行数统计从1开始、文件拷贝时的数据完整性问题等。
2025-08-12 18:29:38
761
原创 软件编程2-IO1-标准IO
本文介绍了Linux系统中的IO操作基本概念和标准IO。主要内容包括:1)IO指计算机与外部设备的数据交换,Linux中所有设备都视为文件,分为块设备、字符设备、目录、普通文件等类型;2)标准IO用于操作普通文件(ASCII码文件和二进制文件),提供fopen/fclose等接口,操作流程为打开-读写-关闭;3)标准IO具有缓存机制,分为全缓存(4K)、行缓存(1K)和不缓存三种类型,不同缓存策略影响IO效率和实时性。文中还介绍了标准输入/输出/错误流(stdin/stdout/stderr)及其缓存特性。
2025-08-11 21:54:48
658
原创 软件编程1-shell命令
Shell命令是用户与Linux内核交互的桥梁,既能保护内核安全,又能解释执行用户指令。主要介绍了基础命令(如ls、cd等)、文件操作命令(cat、head等)、通配符匹配、管道和重定向功能,以及find、whereis等查找命令。此外还讲解了shell脚本编程,包括脚本编写步骤、输入输出处理、变量使用和流程控制结构。文章系统梳理了Shell命令的使用方法和脚本编程要点,适合Linux初学者快速掌握Shell操作基础。
2025-08-10 22:22:31
818
原创 数据结构5-哈希表
本文介绍了两种常见的数据结构与算法:哈希表和排序算法。哈希表部分详细讲解了其基本概念(哈希算法、哈希碰撞)和实现过程,包括创建、插入、遍历、查找和销毁等操作,通过键值映射实现O(1)时间复杂度的快速存取。排序算法部分则概述了冒泡排序、选择排序、插入排序、希尔排序和快速排序的原理及时间复杂度特性,其中快速排序和希尔排序的时间复杂度最优为O(nlogn),同时还介绍了二分查找算法。全文通过理论分析和代码示例相结合的方式,系统性地阐述了这些常用数据结构和算法的核心要点。
2025-08-08 18:37:54
695
原创 数据结构4-二叉树
摘要:本文系统介绍了二叉树的基本概念和操作。主要内容包括:1)二叉树的基本概念,包括节点类型(根节点、分支节点、叶子节点)、树的高度/深度/层数定义;2)完全二叉树和满二叉树的特性及区别;3)二叉树的两种遍历方式:深度优先(前序、中序、后序)和广度优先(层序)遍历的递归实现;4)完全二叉树的创建、遍历和销毁操作;5)非完全二叉树的创建及高度计算。文章通过代码示例详细展示了二叉树的各种操作实现方法,为理解二叉树数据结构提供了完整的技术参考。
2025-08-08 13:40:47
555
原创 数据结构4-栈、队列
本文系统介绍了栈和队列两种基础数据结构。栈采用"先进后出"原则,分为顺序栈和链式栈,详细说明了压栈、出栈等基本操作及其实现方法。队列遵循"先进先出"规则,同样分为顺序队列和链式队列,重点讲解了循环队列的判满条件(牺牲一个存储空间)和操作实现。最后通过编程练习展示了如何用链式栈(需两次压栈)和链式队列(直接实现)来完成输入输出顺序一致的功能,提供了完整的代码实现方案。文章内容涵盖数据结构基本概念、分类及具体实现,具有较强的实用性。
2025-08-07 13:06:27
1062
原创 数据结构3-双向链表、循环链表
本文详细介绍了三种链表结构的实现:双向链表、循环链表和内核链表。主要内容包括:1. 双向链表的节点定义、创建、头插/尾插法、遍历、查找、修改、删除和销毁操作的C语言实现;2. 循环链表的特殊处理(首尾相连)及各操作的实现差异;3. 内核链表的特点(节点嵌入数据结构)及其与传统链表的区别。通过代码示例和操作步骤说明,系统讲解了每种链表的基本操作原理和实现要点,包括指针处理、内存管理等关键技术细节。
2025-08-05 19:37:05
900
原创 数据结构2-单向链表
本文详细介绍了链表的11种常见操作实现方法:1. 链表元素查找(遍历查找)2. 链表节点修改(遍历修改)3. 尾插法插入节点4. 链表销毁(释放所有节点)5. 查找中间节点(快慢指针法)6. 查找倒数第k个节点7. 删除未知头节点的中间节点(数据覆盖法)8. 链表倒置(头插法)9. 链表冒泡排序10. 链表选择排序11. 判断链表是否有环及环相关操作(快慢指针法)。每种操作均包含步骤说明和代码实现,涵盖链表的基础操作与高级应用。
2025-08-04 20:12:38
1022
原创 数据结构1-概要、单向链表
本文系统介绍了数据结构中的链表实现。首先概述数据结构的基本概念,包括时间复杂度、空间复杂度等核心指标,以及数据结构的主要分类。重点讲解了链表的特点、分类及实现方法,详细剖析了单向链表的节点定义、创建、头插法、遍历和删除等关键操作,并提供了完整的C语言代码实现。文章还通过对比顺序链表与链表的优缺点,突出链表在动态内存管理方面的优势。最后给出链表操作的实践练习建议,包括多文件编程的实现方法。全文内容丰富,代码示例详实,为学习链表这一重要数据结构提供了清晰的指导框架。
2025-08-02 19:04:09
1229
原创 C语言15-构造数据类型、位运算符、内存管理
本文摘要:文章系统介绍了C语言中结构体、共用体、枚举和位运算等核心概念。重点讲解了结构体的定义、初始化、内存对齐规则及传参方式;对比了共用体与结构体的存储差异;阐述了枚举类型的特性及位运算符的使用场景。同时涵盖了堆区内存管理、内存泄漏等关键问题,通过示例代码演示了各种数据结构的实际应用,为C语言开发者提供了全面的参考指南。
2025-07-30 19:25:02
757
原创 C语言14-指针4-二维数组传参、指针数组传参、viod*指针
摘要:本文介绍了二维数组和指针数组的传参方法。对于二维整型数组,可通过指针形式传递并操作(如int (p)[3]);字符型二维数组类似,使用char (p)[32]形式。指针数组传参需用二级指针char。void*指针可保存任意类型地址,无需强制转换即可赋给特定类型指针,常用于统一函数参数和返回值类型。文中提供了数组接收、打印的示例代码。
2025-07-29 18:00:04
569
原创 C语言13-指针3-函数指针、二级指针、指针数组、数组指针、
本文介绍了四种指针类型及其应用:1)函数指针,存储函数地址用于动态调用;2)二级指针,指向指针的指针,用于修改外部指针变量或指针数组传参;3)指针数组,元素为指针的数组,用于高效操作字符串数组;4)数组指针,指向整个数组的指针,处理多维数组时维护类型信息。这些指针类型在C语言中分别实现函数回调、参数传递、字符串操作和多维数组处理等功能,通过地址间接访问提升程序灵活性。文末提供了各类指针的声明语法和使用示例。
2025-07-28 20:36:14
722
原创 习题之我与指针函数的弯弯绕绕
本文讨论了通过指针函数封装实现strcpy功能的方法。代码实现包含纯享版和带注解版,重点分析了指针函数嵌套时的常见错误和注意事项:1)需要保存初始指针位置,避免因指针自增导致返回错误地址;2)详细解释了嵌套指针函数的参数传递过程,展示了"luck!"如何通过两次复制传递到最终目标dst。文章通过具体代码示例,对比了字符串复制与倒置操作中指针处理的差异,强调了指针操作时保持首地址正确性的重要性。
2025-07-28 16:25:22
645
原创 函数掉进的坑--函数竟然进行了两遍
在实现mystrcat函数模拟strcat功能时,由于在printf中调用了两次mystrcat(str,dst),导致字符串被重复拼接。因此需要注意:函数名加参数的形式(如mystrcat(str,dst))本身就是一次完整调用,调用几次就执行几次函数操作。我以为将mystrcat函数写在printf只是打印这个函数返回的值,不曾想这样就算调用了函数。当我们写出mystrcat(str,dst)就是运行该函数体。所以mystrcat函数体运行了两遍。:封装mystrcat函数实现strcat功能。
2025-07-28 00:41:25
161
原创 C语言12-指针2-指针与数组的关系
本文主要探讨指针与数组的关系及编程应用。数组名本质是指向首元素的指针常量,但在sizeof和&运算时表现特殊。数组可通过指针方式访问元素,函数传参时可采用数组或指针形式。字符串处理中,字符数组和指针的应用需要注意const修饰符的不同作用:const int*p限制修改指向内容,int *const p限制指针变量本身。此外还介绍了指针函数(返回指针的函数)和函数指针(指向函数的指针)的概念与用法,并提供了数组输入、排序、输出等实用函数示例。这些知识点是C语言中指针与数组关系的核心内容。
2025-07-26 18:37:25
833
原创 C语言11-指针1-基础知识
本文概述了指针的核心概念与应用。主要内容包括:指针的优点(高效访问内存、操作硬件)、基本概念(地址与指针变量)、注意事项(野指针、内存泄漏)。介绍了指针运算符(&取地址,*解引用)和指针变量的定义形式(空指针NULL)。详细说明了指针算术运算的特性(偏移量由数据类型决定)以及指针作为函数参数的两种传递方式(值传递和地址传递)。文中通过具体示例展示了指针的操作方法,并强调了使用指针时的关键注意事项。
2025-07-25 19:06:56
871
原创 C语言10-预处理命令
本文介绍了C语言预处理命令的三大类:头文件、宏定义和条件编译。头文件部分解释了#include指令的两种形式及其查找路径差异,说明了头文件内容组成和工程结构组织方式。宏定义部分分别讲解了不带参数和带参数的宏定义语法及注意事项,特别强调宏函数的使用规范。条件编译部分列举了#if/#elif/#else/#endif等指令的用法。作者通过系统整理这些知识点,体会到编程学习需要持续练习和总结,并分享了自己从零基础到能独立解决问题的成长过程,强调多练多思的重要性。全文既包含技术要点又融入学习心得,展现了编程学习的阶
2025-07-24 17:28:59
691
原创 C语言10-函数2-extern、函数传参
摘要:本文介绍了extern关键字的用法,用于声明外部变量,便于在多文件编程中共享变量。同时讲解了函数传参的两种方式:值传递(不影响实参)和数组传递(操作同一数组)。重点阐述了整型数组的两种传参形式(固定长度和动态长度),并通过三个实例演示了数组操作(打印极值、冒泡排序、倒置)。最后说明字符数组传参无需长度参数(自动识别'\0'),并给出计算字符串长度的练习。文章强调动态长度数组传参的实用性和灵活性。
2025-07-24 16:00:33
540
原创 C语言9-函数1
本文系统介绍了函数编程的核心概念,主要包括:1)函数的定义、调用和声明三种形式;2)变量的作用域(局部/全局变量)和生存周期;3)四种存储类型(auto/register/extern/static)及其内存分配机制;4)函数参数传递规则及递归函数的使用要点。重点解析了栈区、堆区、数据区和文本段的内存分布特点,通过闰年判断和四则运算实例演示函数封装方法,并以汉诺塔问题为例说明递归函数的应用逻辑。全文从理论到实践,系统阐述了函数编程的关键知识点。
2025-07-23 18:54:09
1130
原创 C语言8-数组3-一维字符型数组、二维字符型数组
本文介绍了C语言中字符数组和字符串处理的相关知识。主要内容包括:一维字符数组的常用操作(strcpy、strcat、strcmp)及其注意事项;二维字符数组的定义、初始化与遍历方法;以及通过编程练习实现字符串长度计算(strlen)、字符串拷贝(strcpy)和字符串拼接(strcat)的功能。文中提供了详细代码示例,强调操作时要注意数组边界检查,避免越界访问。这些基础操作是C语言字符串处理的核心内容,对理解更复杂的字符串算法具有重要意义。
2025-07-22 19:57:49
685
原创 C语言7-数组2-冒泡、选择排序、二维整型数组、一维字符型数组
本文介绍了数组排序算法和数组类型的基础知识。在排序算法部分,详细讲解了冒泡排序和选择排序的工作原理与实现方式:冒泡排序通过相邻元素比较交换实现排序,而选择排序通过每次选择最小元素交换位置实现排序。在数组类型部分,阐述了二维整型数组的存储形式、初始化方法及本质特征,以及一维字符型数组的初始化、元素访问、字符串打印和输入输出操作。特别说明了strlen和sizeof在字符串处理中的区别,并提供了相关示例代码。全文涵盖了数组操作的基础概念和实用技巧。
2025-07-21 18:02:12
841
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人