自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 变频器电机基础知识

变频器(Variable-frequency Drive,VFD)是一种利用**变频技术和微电子技术**的电力控制设备,其核心原理是通过改变电机工作电源的频率和电压来控制交流电动机的转速和输出功率。交流电动机的转速公式是:n=60fp(1-s)其中,(f)为供电频率,(p)为极对数,(s)为转差率。由此可见,通过改变频率(f)即可实现电机调速。

2026-09-10 10:22:59 151

原创 ☆嵌入式硬件的学习 :51单片机 知识总结

本文摘要:介绍了CPU、MCU等处理器的基本概念,区分了RAM和ROM的区别。讲解了外设寄存器、GPIO功能及中断相关知识,包括51单片机的5个中断源。阐述了定时器类型、PWM原理及其周期/占空比,对比了有源/无源蜂鸣器特性,并提及串口通信基础概念。

2026-04-09 14:15:30 391

原创 ☆嵌入式硬件的学习:ARM 裸机 知识点总结

本文摘要:介绍了通信基础概念,包括单工/半双工/全双工通信模式、串行/并行通信方式、异步/同步通信区别。重点阐述了串口通信的电气特性(TTL/RS232/RS485)、参数配置及中断处理流程。详细说明了ARM芯片中PLL锁相环、分频器的配置方法,以及EPIT和GPT定时器的工作原理。最后解析了IIC通信协议的核心时序,包括起始/停止信号、数据传输规则、应答机制和读写时序。内容涵盖嵌入式系统开发中的关键通信与时钟技术要点。

2026-03-30 19:09:08 258

原创 嵌入式硬件的学习----ARM

注:裸机必须关闭MMU;2、把这个数字转换为二进制,这个数的最高位1到最低位1之间的二进制序列位数不能超过8位。内存管理单元,虚拟内存,用于管理虚拟内存到物理内存的映射,从而提高物理内存的利用率。程序计数器,本质是一个指针,指向当前代码正在执行的指令的下一条指令。通过一根线/一组线与外设通信,和某个外设通信时,其他外设无法连接。备份、保存程序状态,保存当异常发生时,CPSR程序中的一些状态。先进高速总线(RAM,USB,网卡),接通信速率快的外设。先进外设总线(GPIO,UART),接通信速率慢的外设。

2026-03-25 17:35:15 2681 2

原创 51单片机最小系统:入门必备知识全解析

本文摘要:51单片机最小系统由CPU、RAM、ROM等核心模块组成,介绍了位运算、LED/数码管控制、按键检测等基础功能实现方法。重点讲解了中断系统(包括5个中断源和优先级处理)、蜂鸣器PWM控制、串口通信原理(UART协议及参数配置)等关键技术。此外还详细说明了DS18B20温度传感器的操作流程和时序控制,包括复位、读写时序等底层通信细节。文章系统梳理了51单片机开发中的硬件架构、寄存器操作和常用外设驱动方法,为嵌入式系统开发提供了实用参考。

2026-03-23 17:13:01 694

原创 Linux系统编程:SQLite数据库操作

本文摘要主要包含两部分内容:1) SQLite数据库操作,包括基本SQL命令(创建/删除表、增删改查数据)和C语言编程接口(sqlite3_open、sqlite3_exec等函数);2) HTML网页制作基础,介绍了网页作为服务器文件的本质和基本格式。文章详细说明了SQLite的各种查询语句、条件匹配方式以及C语言API的使用方法,同时简要提及HTML作为超文本标记语言的基本概念。

2026-03-16 18:01:58 383

原创 Linux系统编程-->高效并发服务器:IO多路复用详解

本文介绍了服务器编程中的几种I/O模型及其实现方法。主要内容包括:1)迭代服务器和并发服务器的基本实现流程;2)四种I/O模型的特点:阻塞I/O(简单但效率低)、非阻塞I/O(需轮询消耗CPU)、信号驱动I/O(异步高效但单路)和I/O多路复用(核心是提高并发);3)重点讲解了select函数的使用流程、参数含义及注意事项,并通过示例代码演示了如何用select实现服务器并发处理;4)简要提及了更高效的epoll机制,包括epoll_create、epoll_ctl和epoll_wait三个关键函数。

2026-03-13 17:43:52 665

原创 cJSON:一个轻量级C语言JSON解析器

JSON是一种轻量级的数据交换格式,采用键值对结构存储数据,易于读写和机器解析。cJSON是一个C语言实现的JSON解析器,通过链表结构存储JSON数据,支持数据的封装与解析。使用时需注意内存管理,及时释放分配的内存,并可通过钩子函数自定义内存管理方式。cJSON提供了简洁的API用于创建、修改和解析JSON数据,适用于嵌入式系统等资源受限环境。

2026-03-12 14:38:32 426

原创 基于Linux的天气查询项目

该项目实现了一个基于TCP/HTTP协议和cJSON库的天气查询系统。程序通过socket建立与API服务器(103.205.5.206:80)的连接,构造符合HTTP/1.1规范的GET请求,获取JSON格式的天气数据。核心功能包括:1)实时天气查询,显示地区、温度、湿度等关键信息;2)未来天气查询,展示日期、天气状况及最低/最高温度。系统解决了输入缓冲区冲突、JSON解析失败等问题,并优化了数据接收和错误处理机制。用户可通过简单菜单选择查询功能,输入城市拼音即可获取格式化输出的天气信息。

2026-03-12 10:22:05 725

原创 Linux系统编程-->UDP编程:C/S模型实战详解

本文介绍了基于UDP协议的C/S编程模型。UDP具有无连接、不可靠的数据报特性,客户端流程包括socket创建、可选bind绑定、sendto发送数据;服务端流程包括socket创建、bind绑定、recvfrom接收数据。详细讲解了sendto和recvfrom函数的参数及返回值,并提供了两个UDP通信实例:基础版实现了简单收发功能,进阶版采用多线程实现异步收发功能。代码示例展示了完整的UDP客户端和服务端实现,包括套接字创建、地址绑定、数据收发等关键步骤,并演示了如何处理客户端地址信息。

2026-03-10 17:02:09 928

原创 Linux系统编程:TCP粘包问题解析与解决方案

摘要:TCP协议面向连接且可靠,但字节流传输可能导致粘包问题,原因包括数据无边界、Nagle算法优化等。解决方案包括:自定义结束标志、固定长度发送、自定义协议格式等应用层处理。示例代码展示了基于TCP的文件传输实现,服务器和客户端分别通过结构体封装消息类型和数据,解决粘包问题并完成文件传输功能。

2026-03-10 13:39:52 157

原创 Linux系统编程:TCP/IP网络编程 从socket到通信全解析

本文介绍了TCP网络编程的基本流程,重点讲解了socket编程接口的使用方法。主要内容包括:1) 通过IP地址和端口号定位主机和进程;2) socket()函数创建通信端点,指定协议类型;3) connect()函数建立客户端连接;4) bind()、listen()和accept()函数实现服务器端监听和接受连接;5) send()和recv()函数进行网络数据传输。文中还提供了客户端和服务器的示例代码,演示了TCP通信的基本实现过程,包括地址转换(htons、inet_addr)、字节序处理等关键细节。

2026-03-09 17:45:35 881

原创 Linux系统编程:揭秘网络通信 IP与端口号的奥秘

网络通信通过物理和逻辑通路实现不同主机间进程的通信。关键要素包括IP地址(标识主机)和端口号(标识进程),两者共同确定唯一进程。IP地址分为A-E类,由网络号和主机号组成。子网掩码用于划分网络,网关连接不同网络。DHCP动态分配IP地址,DNS将域名解析为IP地址。端口号分为知名、系统申请和动态分配三类。TCP/IP协议是实际实现的网络模型,包含七层结构。socket编程接口用于创建通信端点,支持TCP和UDP协议。TCP通过三次握手建立可靠连接,UDP则提供高效的无连接传输。

2026-03-07 17:36:18 813

原创 Linux 系统编程:System V IPC-->共享内存高效通信原理

System V IPC机制通过共享内存、消息队列和信号灯集实现进程间通信。核心原理是进程通过唯一键值(key)访问IPC对象,内核则通过ID标识对象。创建key值使用ftok()函数,需指定路径和项目ID。共享内存操作流程包括:1)用shmget()创建/获取共享内存;2)通过shmat()映射到进程地址空间;3)使用后调用shmdt()解除映射;4)最终用shmctl()删除对象。共享内存实际分配大小为4K的整数倍,效率高因直接操作内核空间。示例程序演示了读写进程如何通过相同key值访问同一共享内存区域

2026-03-07 14:13:22 540 1

原创 Linux系统编程:线程死锁与进程通信-->核心问题解析

本文摘要: 主要探讨进程间通信机制中的死锁问题和常用通信方式。死锁部分分析其定义、发生条件(互斥、不可剥夺、请求保持、循环等待)及处理策略。重点介绍了三种进程间通信方式:1)管道(无名/有名),包括创建流程和父子进程通信实现;2)信号通信,讲解signal函数注册及处理机制;3)共享内存等System V IPC方式。通过代码示例演示了无名管道在父子进程间的双向通信实现,以及有名管道在任意进程间的通信应用,同时分析了管道的半双工特性和阻塞行为。

2026-03-05 17:36:31 802

原创 Linux系统编程:线程 从基础到实战详解

本文介绍了线程的基本概念和使用方法。主要内容包括:1)线程是轻量级进程,共享进程资源;2)线程创建(pthread_create)、退出(pthread_exit)和回收(pthread_join);3)线程同步互斥机制,重点讲解互斥锁(pthread_mutex)的使用方法;4)通过示例演示了多线程文件拷贝、数据共享等应用场景;5)比较了线程与进程的区别,指出线程共享数据方便但需要同步互斥机制保证安全性。文中包含多个代码示例,展示了线程创建、互斥锁使用、线程间同步等具体实现方法。

2026-03-04 17:25:34 688

原创 Linux系统编程:线程的创建

摘要:线程是轻量级进程,相比进程资源占用更少。线程是CPU调度的最小单位,进程是资源分配的基本单位。Linux内核中线程和进程统一称为任务。使用pthread_create创建线程时需链接pthread库,线程间可共享进程资源(全局变量等)。通过传递地址或值可控制线程间是否相互影响。示例展示了两个线程分别对变量进行不同操作,演示了线程间共享资源和独立运行的不同实现方式。

2026-03-03 17:32:29 558

原创 Linux系统编程:进程回收wait / waitpid 详解

本文摘要:探讨了Linux进程管理的核心机制,包括进程创建、执行和退出。重点分析了fork()创建子进程的两种执行方式:继承父进程或通过exec系列函数加载新程序。详细讲解了进程退出的三种方式(正常退出、异常退出和信号终止),并深入解析了wait()和waitpid()函数对僵尸进程的回收机制,包括阻塞/非阻塞模式、状态码获取方法(WIFEXITED/WEXITSTATUS等宏)。通过代码示例展示了父子进程交互、状态传递和资源回收的完整流程,为理解Linux进程生命周期管理提供了实践参考。

2026-03-03 13:36:32 1031

原创 Linux系统编程:进程管理、进程结束与exec函数全解析

本文摘要: 文章系统讲解了Linux进程管理的核心概念,包括:1)进程与程序的区别(动态/静态);2)进程状态、组成(PCB+内存段);3)进程创建(fork)及特殊状态(孤儿/僵尸进程);4)进程执行(exec函数族)的6种方式及环境变量处理;5)进程终止(exit/_exit)和资源回收(wait);6)实用函数(strtok字符串分割)和案例(实现简易shell)。重点剖析了进程生命周期中的关键操作及常见问题解决方案,如文件描述符继承、环境变量传递、僵尸进程处理等,为Linux系统编程提供了实践指导。

2026-03-02 17:30:33 929

原创 Linux系统编程:进程从创建到执行

摘要: 进程是程序的一次动态执行实例,包含PCB(进程控制块)和内存空间(堆、栈、数据段等),由操作系统调度实现多任务并发(宏观并行,微观串行)。通过fork()可创建子进程,父子进程拥有独立的内存空间和执行流。进程状态包括运行、就绪、阻塞等,常用命令如top、ps、kill等可管理进程。编程中,fork()调用后父子进程执行顺序不确定,且各自变量修改互不影响。连续fork()会指数级增加进程数(如两次fork()生成4个进程)。进程可执行与父进程相同或不同的任务,最终通过退出结束生命周期。

2026-02-28 17:34:35 595

原创 Linux系统编程->掌握文件IO:从标准库到系统调用

本文总结了文件编程的核心知识点,包括标准IO库操作(fopen/fclose、字符/字符串/二进制读写、文件定位)、系统调用(open/read/write/close)、文件描述符概念、缓冲区类型(行/全/不缓存)及其刷新条件。同时介绍了目录操作函数(opendir/readdir/closedir)和重要概念如空洞文件、文件偏移量等。通过示例代码演示了cat和cp命令的实现方法,并比较了标准IO与系统调用的区别,如fopen返回流指针而open返回文件描述符。最后讲解了文件权限设置和定位函数lseek。

2026-02-27 17:35:24 758

原创 Linux系统编程:从入门到精通

本文总结了Linux系统编程中文件操作的关键知识点。主要内容包括:1. Linux文件编程基础概念(一切皆文件、文件类型);2. 文件操作标准流程(打开、读写、关闭);3. 常用文件操作函数:fopen/fclose、fgetc/fputc(字符读写)、fgets/fputs(字符串读写)、fread/fwrite(二进制读写);4. 文件定位函数(fseek/ftell/rewind)及空洞文件创建;5. 通过编程练习实现Linux常用命令(touch/cat/cp)的功能。文章重点讲解了各种文件操作函数

2026-02-25 19:04:14 963

原创 数据结构:排序算法与哈希表

本文介绍了三种常见的数据结构与算法:插入排序、快速排序和哈希表。插入排序通过将元素逐个插入有序序列实现排序,具有稳定性。快速排序采用分治策略,通过选取中枢元素进行分区递归排序。哈希表通过哈希函数将数据映射到数组位置,支持快速查询,并讨论了哈希冲突的解决方法(线性探测、二次探测和随机法)。文章还提供了C语言实现的代码示例,包括插入排序、快速排序以及哈希表的创建、插入和查找操作。这些算法在实际应用中能有效提升数据处理效率。

2026-02-12 22:45:27 1284

原创 数据结构:队列与二叉树精讲

本文介绍了队列和树两种数据结构的基本概念与实现。队列是一种先进先出(FIFO)的线性表,详细讲解了顺序队列和循环队列的实现,包括创建、入队、出队等操作。树结构部分重点介绍了二叉树,包括其定义、特性(如度、深度)、特殊类型(斜树、满二叉树、完全二叉树)以及三种遍历方式(前序、中序、后序)。文中提供了二叉树ADT定义和完整的C语言实现代码,包含创建、遍历和销毁等功能。通过示例代码演示了如何使用递归方法构建二叉树并进行三种遍历操作。

2026-02-11 17:40:45 819

原创 数据结构:栈数据结构详解与应用

摘要 栈是一种限定仅在表尾进行插入和删除操作的线性表,具有"先进后出"的特性。栈主要分为顺序栈和链式栈两种实现方式。顺序栈使用连续存储空间,包含创建、判空、判满、入栈、出栈、获取栈顶和销毁等基本操作。链式栈则通过链表实现,操作方式类似但不需要预先分配固定空间。根据栈顶指针移动方向,栈可分为空增栈、空减栈、满增栈和满减栈四种类型。栈广泛应用于回溯、递归和优先级处理等场景,是计算机科学中重要的数据结构。

2026-02-10 17:15:57 658

原创 Linux开发必备:4大神器全掌握

摘要:Linux开发必备四大工具:1) GCC编译器,用于将源代码转换为可执行文件;2) Vim文本编辑器;3) GDB调试器,通过-g选项编译后使用,支持断点设置(run/b)、变量查看(p/display)和单步调试(n/s);4) Makefile工程管理工具,支持多文件编译和增量编译,通过make执行编译规则。其中GDB调试流程包括:带调试信息编译、启动调试器、设置断点、运行程序(r)、查看变量(p)和逐步调试(n/s)。当源文件超过3个时需使用Makefile管理编译过程。

2026-02-09 17:26:38 383

原创 数据结构:链表详解与应用

本文介绍了单向链表和双向链表的实现方法。单向链表通过动态存储解决了顺序存储结构在插入、删除时的效率问题,包含头插、尾插、查找、删除、修改等基本操作,并实现了链表逆序、查找中间节点和倒数第k个节点等算法。双向链表在单向链表基础上增加了前驱指针,支持双向遍历。代码实现分为头文件定义、主函数测试和具体功能实现三部分,通过结构体封装数据域和指针域,采用模块化设计实现链表的创建、增删改查等操作。两种链表都通过指针连接节点,提高了内存利用率和操作灵活性。

2026-02-07 19:26:55 610

原创 数据结构:逻辑与存储关系基础

摘要:数据结构是存在特定关系的数据元素集合,分为逻辑结构(集合、线性、树、图)和物理结构(顺序存储和链式存储)。算法是解决问题的步骤描述,具有输入输出、有穷性、确定性和可行性等特征,需考虑时间复杂度(如O(1)、O(n)、O(n²)等)。线性表是有限序列元素的一对一关系,顺序存储便于随机访问但插入删除效率低。抽象数据类型(ADT)包含数据模型和操作,如顺序表的各种操作函数。

2026-02-07 10:38:11 841

原创 C语言 堆区内存管理实战

本文介绍了C语言中堆区内存管理的基本操作。重点讲解了malloc函数申请内存和free函数释放内存的使用方法,强调申请后必须检查指针是否为NULL。文中指出常见错误包括:未释放内存导致泄漏、修改指针指向后无法正确释放、未将释放后的指针置为NULL等。通过两个代码示例演示了正确的内存管理流程:申请内存后先检查有效性,使用完毕后及时释放并将指针置空。特别提醒不要改变指向堆空间的指针地址,否则会导致释放失败。这些注意事项对避免内存泄漏和程序错误至关重要。

2026-02-04 13:54:18 222

原创 C语言结构体:从定义到实战

本文介绍了C语言中三种构造数据类型:结构体、共用体和枚举类型。结构体是最常用的自定义数据类型,允许将不同类型的数据组合在一起,详细讲解了结构体的定义、初始化、访问、嵌套、字节对齐、传参及数组操作。共用体用于共享内存空间,适合节省内存的场景。枚举类型则用于定义一组命名的整型常量,限制变量的取值范围。此外,还介绍了位运算操作,包括与、或、异或、取反及移位运算,这些操作直接作用于数据的二进制位。通过具体代码示例展示了各种数据类型的实际应用。

2026-02-03 17:35:29 852

原创 深入解析void*万能指针的奥秘

本文主要介绍了C语言中void指针和指针数组的使用方法。void指针作为通用指针类型,可以存储任意类型的地址,但在使用时需要进行强制类型转换。文章通过memcpy函数的实现示例展示了void指针的应用场景。指针数组则是指针元素的数组,常用于存储字符串地址,文章详细说明了其定义、初始化和传参方式。此外还介绍了数组指针与二维数组的关系,以及如何通过数组指针传递二维数组参数。这些指针技术为C语言提供了灵活的内存操作方式,是底层编程的重要基础。

2026-02-02 19:09:42 583

原创 C语言 指针精讲:核心要点与实战技巧

指针要点摘要 本章系统介绍了指针的核心概念与应用,主要内容包括: 基本概念:指针变量存储内存地址,32位系统下指针占4字节,64位占8字节。&取地址运算符获取变量地址,*解引用运算符访问指针指向的内容。 指针运算:支持加减、自增自减运算,运算单位取决于基类型大小(如int类型+1实际地址偏移4字节)。指针与数组密切相关,数组名本质是常量指针。 重要应用: 函数参数传递:值传递无法修改实参,地址传递通过指针间接修改 字符串操作:strlen、strcpy等函数实现 函数指针:实现回调机制,降低代码耦合

2026-01-28 17:30:42 2484

原创 C语言预处理指令

本文介绍了C语言预处理指令的相关知识,主要包括:1)宏定义(无参和带参宏)的使用方法及注意事项;2)gcc编译的四个步骤(预处理、编译、汇编、链接);3)#include包含头文件的两种方式和查找路径;4)条件预处理指令(#if、#ifdef、#ifndef等)的语法和使用场景。重点阐述了宏定义与函数的区别、带参宏的注意事项以及头文件应包含的内容规范。这些预处理指令在代码优化、条件编译和模块化编程中具有重要作用。

2026-01-27 14:46:20 300

原创 C语言函数:从定义到实战

本文摘要:第五章重点讲解C语言函数的相关知识。主要内容包括:1)函数的定义与调用语法,强调返回值类型、参数传递和函数命名规范;2)变量的作用域与生命周期,区分局部变量和全局变量的特性;3)变量的存储类型(auto/register/extern/static)及其应用场景;4)函数参数传递方式(值传递和地址传递)及数组作为参数的注意事项;5)递归函数的基本原理和使用限制。特别强调函数模块化编程思想、static/extern关键字的用法以及内存分布图的理解,这些是本章的重点内容。

2026-01-24 17:38:26 1368

原创 C语言字符串操作

本文介绍了C语言中字符串处理的相关函数及其实现方法。主要内容包括:1)字符串长度获取(strlen)的系统函数与手动实现;2)字符串复制(strcpy)的多种实现方式;3)字符串拼接(strcat)的原理与实现;4)字符串比较(strcmp)的返回值规则;5)字符串与数值转换(atoi/atof/sprintf)的方法;6)二维字符数组的定义、初始化和读写操作。重点强调了系统函数的使用和手动实现的技巧,并指出需要熟练掌握字符串相关函数的调用和手写实现能力。

2026-01-23 17:35:10 975

原创 C语言数组操作

本文介绍了C语言中一维和二维数组的基本操作,重点讲解了数组排序算法。内容涵盖:一维数组的逆序操作、冒泡排序(通过相邻元素比较交换实现升序)和选择排序(通过选择最小值实现排序)的实现方法;二维数组的定义、初始化、元素访问和内存特性;特别强调了一维字符数组以'\0'结尾的特性及%s格式符的使用。冒泡排序和选择排序的核心思想是学习重点。这些基础数组操作和排序算法是C语言编程的重要基础。

2026-01-22 17:30:59 986

原创 C语言循环与数组

本文介绍了C语言中do-while循环、goto语句、双层for循环和数组的相关知识。do-while循环先执行后判断,至少执行一次;goto语句用于无条件跳转,但一般不建议使用;双层for循环可处理复杂逻辑如九九乘法表。数组部分详细讲解了一维整型数组的定义、访问、初始化、特征和存储方式,以及二维整型数组、字符数组和多维数组的概念。重点包括数组元素的访问方法(下标从0开始)、初始化方式(全部/部分/默认初始化)和数组的三大特征(单一性、连续性、有序性)。

2026-01-21 18:12:18 945

原创 C语言分支与循环控制

本文介绍了C语言中的分支控制和循环结构。主要内容包括:1)使用if-else和switch实现多分支选择,展示成绩分级示例;2)while和for循环的基本语法和使用场景,强调循环三要素(初始化、条件、变量更新);3)循环控制语句continue和break的作用区别。文章通过数值交换、成绩评定、1-10求和等示例代码,演示了条件判断和循环结构的实际应用,并指出编程中的注意事项如死循环避免、循环体不加分号等要点。

2026-01-20 17:16:37 659

原创 C语言流程控制与分支逻辑

本文摘要: 本文主要介绍了C语言中的字符串输入输出函数(puts/gets)和流程控制相关内容。重点包括:1) puts和gets函数的使用方法及注意事项;2) 三种流程控制结构(顺序、分支、循环);3) 关系运算符和逻辑运算符的使用及截断效应;4) 三目运算符的语法;5) if分支语句的基本语法和使用规范。文中通过多个代码示例演示了各知识点的具体应用,并强调了编程中的注意事项,如等值比较时建议将常量写在左边、逻辑运算符的短路特性等。

2026-01-19 17:32:59 1131

原创 C语言输入输出函数详解

本文摘要:第二章介绍了C语言中的输入输出函数,包括单个字符处理的putchar()和getchar()函数,以及格式化输入输出的printf()和scanf()函数。putchar()用于输出单个字符,支持多种形式的参数;getchar()用于获取用户输入的单个字符。printf()支持多种格式控制符(如%d、%f、%c等)和转义字符(如\n、\t),能实现复杂的格式化输出。scanf()则用于格式化输入,需严格匹配输入模板,并注意避免在格式字符串中使用\n。文中通过示例代码详细说明了各函数的使用方法和注意

2026-01-17 17:29:26 425

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除