自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++_win_QT6学习《4》_梳理QT知识01_先把qt学什么搞清楚

对Qt的学习,总是感觉东一块,西一块,没有一个连贯,整体的逻辑思路,这次就是梳理一下QT的知识脉络,一次次梳理的目的就是为了把学过的知识加深记忆,能够将知识点串联,加深对QT的了解。这次就是梳理出qt中每种机制必须要掌握的知识,不用对分支部分挖太深,在C++_win_QT6学习《2》中我就比较较真了,往深挖了很多,把自己挖晕了。先掌握每个部分重要机制原理,建立起qt的知识框架,然后就可以深挖了。关于qt部分学习脉络。

2025-12-12 14:53:48 982

原创 C++_win_QT6学习《3》_结合qt项目开发学习git仓库相关知识

假设有2给开发人员,需要共同开发一个qt项目,使用gitee当中的仓库,主要是了解gitee中多人配合制作项目的流程。合并操作的前提还是先拉取仓库主分支最新情况,然后在本地切换到主分支,在本地合并,再推送远程更新,这样既安全(冲突在本地解决)、又符合“主干保护”思想(不直接在远程做合并)。dev-b完成了逻辑部分程序的开发;dev-b提交的程序已经由a拉取到本地,并且合并到自己本地dev-a分支了,这个版本审核无误,接下来该合并到主分支master。

2025-12-07 10:09:14 761

原创 网络《02》、Kali在U盘中持久化

疑难解答 → 高级选项 → UEFI 固件设置 → 重新启动。电脑会自动进入 BIOS/UEFI 界面。右侧“高级启动”里点 立即重新启动。开始菜单 → 设置(齿轮)更新和安全 → 恢复。

2025-12-03 10:03:42 481

原创 网络《01》、网络基础知识、TCP/IP四层模型细究

1、搞懂网络传输的知识2、TCP和UDP协议是最重要的3、搞一搞简单的网络故障排除,本文故障排除部分,就是把每一层可能的错误简单梳理了一下,并不具体,没有测试就没有发言权,仅作为以后查找问题时的一个提示点吧这部分只是网络知识的概览,往后细究可以沿着这个框架再深挖关于排错,从网络接口层到应用层,排查顺序遵循「由下到上」,新手按这个流程走,99% 的网络问题能解决:1、网络接口层:ipconfig/ifconfig 查网卡 / IP → ping 127.0.0.1 验证本地链路;

2025-11-29 17:18:11 845 1

原创 ARM《13》_★★★c语言中的文件操作函数

在linux中,默认一切都是文件,所以文件操作就显得很重要了,包括linux中用户态读写文件,内核态处理用户态调用对应字符设备文件的操作,这些都需要c语言中的文件操作函数,因此有必要进行总结和学习探究。这篇文章重点是搞清楚更通用、跨平台的标准库文件操作。对于linux系统调用文件操作,了解主要函数的主要功能即可。标准库文件操作是通用性很强的文件操作方式,必须掌握;标准库是用户态封装,核心优势是跨平台和缓冲;系统调用是内核提供的底层接口,无缓冲、效率高,适合 Linux 特定场景(如服务器开发)。

2025-11-26 19:38:37 545

原创 ARM《12》_内核源码(驱动)(设备节点)之间的关系、等待队列、fork、文件描述符、select、poll、★IO 多路复用

驱动只需实现 poll 方法并正确调用 poll_wait,其余由内核框架完成案例1只是简单实现了select,其中只用监控键盘的输入,并没有体现多路IO复用。案例1和案例2有区别的代码是下面部分:★★★Linux/Unix系统的核心设计哲学:一切IO皆文件,所有IO资源都被抽象为"文件描述符"这一统一接口,而不是说IO事件本身就是磁盘上的文件。键盘输入IO事件的fd(文件描述符)是0,其他IO事件是否都有自己的fd,比如显示器标准输出是1;// 案例1// 键盘输入IO事件的fd是0。

2025-11-26 10:41:29 675

原创 ARM《11》_综合platform机制、ioctl机制、GPIO机制、杂项设备机制实现一个LED灯的闪烁

平台总线(Platform Bus)是内核虚拟的总线,不对应物理总线(如USB、PCI)。它专为嵌入式系统设计,用于管理无法通过物理总线枚举的设备。【关于平台总线机制的优点可以查看 “案例1总结” 】内核用抽象平台总线(定义在 /linux内核源码/drivers/base/platform.c`)//platform.c中的对平台总线的抽象定义.match = platform_match, // 匹配函数/*总线结构体的作用 :维护两个链表:** 设备链表 ** 和 ** 驱动链表 **

2025-11-17 20:07:41 563

原创 ARM《10》_03_字符设备驱动进阶(并发→竞态→同步机制、阻塞io和非阻塞io)

3、用户进程(第二个打开终端的循环读取):频繁读取irq_count(每秒读 2 次)。sleep 0.5;3、创建设备节点:sudo mknod /dev/spinlock_t c [major] 0(替换[major]为实际值);2、加载模块:sudo insmod spinlock_t.ko,查看主设备号(dmesg中打印的major);1、定时器顶半部(每秒触发 1 次):修改irq_count(irq_count++);2、底半部(每次顶半部触发后执行):读取irq_count(打印日志);

2025-11-12 08:55:51 737

原创 ARM《10》_02_linux内核源码的作用、iotcl、中断

ioctl(Input/Output Control) 是一种内核驱动与用户空间程序之间进行控制命令交互的核心机制。它允许用户空间向驱动发送 “控制指令”(而非单纯的数据流),以完成设备配置、状态查询、特殊操作等超出常规 read/write 能力的功能。

2025-11-11 16:45:41 1079

原创 ARM《10》_01_字符设备驱动基础、学习开发字符驱动内核程序、总结规律和模板

在第一个案例中,创建的字符设备结构体和文件操作集合结构体是两种没有关联的结构体,可以理解为,文件操作集合结构体是内核驱动程序对linux中FVS概念的具体实现,也是linux中万物皆文件的一种体现,而字符设备结构体和文件操作集合结构体的绑定是依赖字符设备框架实现的。在保留 “安全传输 + 防错” 核心逻辑,后得到的最简模板如下:1、struct file *file:文件对象指针(内核定义的结构体),记录当前设备的 “打开状态信息”,比如设备的读写权限、打开次数、私有数据等。

2025-11-06 23:02:27 938

原创 ARM《9》_在linux中编写内核模块(单.c文件、多.c文件)、内核模块传参(传参、回调)、内核模块互调

模块加载函数(必备):是模块的 “启动入口”,通常通过 module_init() 宏指定。加载时自动执行,主要完成资源申请(如内存、设备号)、初始化数据结构等工作。若初始化失败,需返回非 0 值,告知内核加载失败。模块卸载函数(必备):是模块的 “清理出口”,通常通过 module_exit() 宏指定。卸载时自动执行,主要负责释放加载函数申请的资源(如内存、设备号),避免内核资源泄漏。模块许可证声明(必备)

2025-11-02 12:43:39 1058

原创 ARM《8》_制作linux最小根文件系统

BusyBox 是一个轻量级的开源工具箱,该项目是由Bruce Perens in 在1996创建的,官网地址是:http://www.busybox.net/,BusyBox 是在 GNU GPL 许可协议下发行的开源软件,享有“嵌入式Linux的瑞士军刀”美誉;Busybox是一个UNIX系统工具集,它将很多普通的UNIX工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令;make menuconfig (重新配置)make clean (建议清掉旧对象)

2025-10-31 10:22:14 1084

原创 ARM《7》_编译生成linux内核中的内核模块

整个流程就是相当于体验了linux内核源码中如何创建内核模块,内核模块,相当于linux系统的动态文件,在linux运行需要时加载;在虚拟机的linux系统中没法用insmod hello.ko调用,因为这个内核模块是linux-4.14编译出来的,我的虚拟机当中的linux系统版本是5.15.0,所以需要在开发板上电后,在开发板上才能运行;

2025-10-29 22:10:53 1013

原创 ARM《6》_给sd卡中拷入uboot程序

通过命令 cat E4412_N.bl1.bin itop4412-spl.bin env.bin u-boot.bin > u-boot-iTOP-4412.bin 【多个二进制文件按特定顺序拼接成一个完整的 U-Boot 镜像(u-boot-iTOP-4412.bin),这是 iTOP-4412 开发板常见的镜像打包方式(因为其启动流程需要多个阶段的引导文件配合)。u-boot.bin:主 U-Boot 程序,包含完整的引导功能(如命令行交互、内核加载、环境变量管理等),由 SPL 加载后运行。

2025-10-28 16:33:34 609

原创 C++_win_QT6学习《2》_自定义信号、QString、事件、生成可执行文件、控件 | 信号 | 函数 | 事件的关系

通过案例,要建立起 qt 中各种概念之间的联系,初期可能对概念的理解有偏差,通过不断的学习,然后不断修改优化笔记,才能建立起自己的技术栈;★★★★关于Qt部分技术贴,会先把基础的概念机制结合小案例测试,搞清楚,后期结合文本、图片、视频、音频、线程开发学习相应的控件;这篇技术贴先帮你建立起来对Qt中重要概念的初步印象,然后随着见识的应用场景增加,不断深入认识Qt;简单静态界面用可视化方式(效率高),复杂逻辑或动态控件(比如代码里new出来的按钮)必须用手动connect(灵活可控)。

2025-10-27 21:42:31 760

原创 ARM《5》_系统移植(在开发板上运行linux程序)

2、最终交付:将调试好的系统固化到 eMMC,切换为 eMMC 启动(稳定、无需插卡)。1、调试阶段:用 SD 卡启动(方便修改镜像,无需拆板焊接);

2025-10-27 20:56:07 680

原创 ARM《4》_在开发板上裸机编程实现GPIO编程控制LED灯闪烁

波特率(Baud Rate)是串口通信中衡量数据传输速度的关键参数,表示单位时间内传输的 “码元” 数量(通常单位是 “波特”,1 波特 = 1 码元 / 秒)。在串口通信中,它决定了发送方和接收方 “同步传输数据的节奏”,只有双方设置相同的波特率,才能正确解析彼此发送的信息。

2025-10-27 18:35:47 891

原创 ARM《3》_学习c和汇编的混合编程

在keil中如下图所示:这些寄存器属于ARM 处理器的内核(CPU 核心),是处理器内部用于临时存储数据和控制执行流程的硬件单元。通用寄存器(R0~R12):用于临时存储数据、地址、函数参数、返回值等,是程序运行中最常使用的寄存器,支持算术运算、逻辑运算、数据传输等操作。R0 ~ R3:常用于 ** 函数参数传递(前 4 个参数)** 和返回值存储(R0);R4~R11:通用数据寄存器,可自由用于各种数据存;R12:常用于函数调用时的临时存储(如栈帧调整),也可作为通用寄存器。

2025-10-24 23:18:53 894

原创 ARM《2》_ARM的GNU汇编语言

这部分笔记就会比较简陋一些,先实现功能,后面有时间再深究原理arm指令的学习很散,后续如果需要继续深入,再行学习;

2025-10-23 10:04:07 832

原创 ARM《1》_回顾gcc、动态编译和静态编译、MakeFile的使用

对于语言的学习,如果要落地作为项目实例,重点还是在于集成与整合的开发工具的使用,比如学习了python以及很多python的库,那么要开发一个落地工具,就得有一个框架能够把这些工具都放进去,让你施展,flask就可以作为python的一种开发框架,对于c++而言,Qt就是一个很好的开发框架;本来学习一种技术,首先就是要知道这种技术是用来干什么的,其此就是怎么使用,再深一点就是这种技术背后的实现逻辑。

2025-10-22 17:31:58 929

原创 C++_win_QT6学习《1》_安装QT6、功能认识、计算器

首先就是把QT中的基础框架搞明白,环境是怎么装的,窗口中的功能是哪些;对于QT的学习还是以实用为主,QT中相关规则太多了,主要就是掌握主要的规则,依据规则类比学习,所以笔记中总结的就是主要的规则方法;下面笔记也是基于Qt在win系统下的学习记录;Qt 是一个跨平台的C++ 应用程序开发框架,它的核心价值在于简化复杂应用的开发,并支持一次编写、多平台运行(桌面、移动、嵌入式等)。简单来说,它就像一个“工具箱”,提供了大量现成的组件、功能和工具,让开发者能更高效地做出各种软件。

2025-10-12 01:21:51 913

原创 linux+c函数库《2》_linux中的进程

c中进程概念比较多,细化而言,可以放作一篇技术帖子来写。在这部分知识中又回归了用c代码编程,且所有程序都是在linux中执行的。

2025-10-06 20:08:07 105

原创 linux+c函数库《1》_初级I/O接口(open、close、stat、sync、access、lseek、unlink)、目录接口(remove、mkdir、readdir、closedir)

Linux C 函数库(以最常用的 glibc 为例)包含成千上万的函数,覆盖从基础工具到系统交互的几乎所有功能。使用 man 命令:例如 man -f open # 查看所有包含 “open” 的文档。也可以通过在线文档:glibc 官方文档或 Linux 手册页查询。

2025-10-04 23:50:22 772

原创 C/C++查缺补漏《4》_时间复杂度、空间配置器和内存池、排序总结、右值引用和移动语义、函数出参和入参、类中的deafult和delete

1、这部分用add标识的是补充知识,用stl标识的是stl部分知识,用ds标识的是数据结构方面的知识;2、这篇笔记是对知识点的记录,部分知识点的记录可能不完整,后序根据学习情况,加以补充;3、有些知识可能会和前面重复,但是重复的总结,不就是为了深刻的记忆吗?在 C++ 中,时间复杂度是衡量算法执行效率的核心指标,它描述的是算法运行时间随输入规模增长的变化趋势,而非具体执行时间(具体时间受硬件、编译器等影响)。时间复杂度用大 O 符号(O) 表示,关注的是最坏情况下的增长趋势。

2025-10-01 23:26:25 1098

原创 C++_STL和数据结构《4》_哈希、位图、bitset、valarray、algorithm重要算法、容器使用案例、迭代器总结

这篇笔记补充了哈希、位图、bitset、valarray同时将STL中重要的容器加使用案例演示1、在算法中参数一般涉及的都是容器的迭代器,这也体现了STL中容器、算法、迭代器之间的关系;2、在 C++ STL 中,不是所有容器都能直接使用 algorithm 库的 sort 函数,这主要取决于容器是否支持随机访问迭代器(RandomAccessIterator)。因此无法直接使用sort函数的容器有:list、forward_list、所有关联容器,这些容器,自带sort() 成员函数。

2025-09-26 17:51:40 946

原创 C++_STL和数据结构《3》_仿函数作为STL中算法参数的用法、匿名函数、序列容器使用、关联容器使用、无关联容器使用、容器适配器使用

算法是舞台,迭代器是跑道,仿函数是剧本,换剧本,同一舞台就能演出完全不同的戏。” 具体而言:容器是算法的“数据仓库”,真正和算法打交道的是这个容器对应的迭代器区间。仿函数是一段可以调用的用户逻辑,是算法核心逻辑调节剂。这篇笔记目的是找到适合自己记忆STL中容器的方法。在这一篇笔记中,目的是把c++中STL常见的一些容器加以总结使用,同时总结相关其他知识,其中涉及STL开头标题就是STL部分知识,其中涉及ADD开头标题就是补充知识。

2025-09-24 19:55:38 426

原创 C++_STL和数据结构《2》_STL的适配器、STL_容器适配器、STL_list容器、STL_deque容器、DS_堆、DS_树的概念、STL_仿函数、AL_递归、AL_回溯、DS_二叉树

这篇笔记会延续前一篇笔记中没有总结完成的STL中的知识;同时还会继续总结新的数据结构;如遇到新的知识,也会加以总结;依然延续之前笔记规则,笔记总结中,STL相关知识会加STL_前缀、数据结构知识会加DS_前缀、附加知识会加ADD_前缀、算法知识会加AL_前缀。回溯一般范式是先检查“是否满足回溯的递归终止条件,return”再通过循环,逐个递归,有点像多子树的根结点发散出去,再逐层返回;也有在循环当中直接判断这条路是否可走的情况,这种就叫“剪枝”;

2025-09-21 20:39:04 859

原创 C/C++查缺补漏《3》_补充一些C++进行模版类开发的知识、在c++中自己手动实现一个符合自己需求的String类库

1、通过自己写一个String类,可以提升对c++中String类的认识;2、提升对c++中类的认识;

2025-09-17 14:44:20 840

原创 C++_STL和数据结构《1》_STL介绍、STL的迭代器、c++中的模版、STL容器中的vector、列表初始化、三个算法、链表、STL中容器总结

对于c++的学习,基础阶段已经过去了,打开c++灵活运用大门的钥匙就是c++中的STL和数据结构的知识,学习这部分知识,首先要对c++中的一些库有一定的认知,知道如何用类实现;要达到这个水平,写c++的类就是基本要求了,所以在这部分学习阶段,如果遇到前面遗漏的知识,我会继续补充在“C++查缺补漏”的相关文章。通过对STL库学习,要掌握其中的一些重要函数(会用、明理、能修改)。数据结构的学习会穿插学习算法,因为数据结构和算法本来就不分家,因此学习记录一些算法就至关重要了,同时刷题也就必不可少了。

2025-09-14 22:53:52 1144

原创 C/C++查缺补漏《2》_的数组指针、VS中解决方案和项目的关系、内存泄露、函数返回值是指针、语法糖、VS中调试代码、编译型语言的编译原理、const、域解析运算符、组合类和嵌套类、宏、default

对于c和c++已经有一定了解之后,我准备对遇到的问题进行细究,之前没赶上ai时代,很多东西就想当然的死记硬背,记住表面现象,囫囵吞枣。现在既然有了搞清楚一个知识的方法,为什么不细细探究呢?在c或者c++中都可以使用指针,指针使用的前提是搞明白,指针要指向谁,这决定了你创建的指针类型。1、去掉指针定义中的指针名,就是这个指针的类型2、去掉指针定义中的指针名和*之间的所有部分,就是这个指针指向的类型案例:/*

2025-09-10 18:53:04 1038

原创 LINUX_Ubunto学习《2》_shell指令学习、gitee

学习Shell(Shell脚本编程)是提升系统管理和开发效率的重要技能,尤其在Linux/Unix环境中作用显著。Shell是用户与操作系统内核的接口,学习Shell有助于掌握系统工作原理。shell的核心作用1、自动化重复任务【用for循环批量处理文件】2、系统管理和维护【通过chmod管理权限、通过脚本监控CPU/内存使用率】3、快速原型开发【shell脚本无需编译是解释型语言、可以快速数据清洗、格式转换】

2025-09-05 18:58:14 966 1

原创 LINUX_Ubunto学习《1》_安装虚拟机、安装Xftp和Xshell、ubuntu中的常用操作命令、ubuntu中的vim指令操作文件相关、在ubuntu下基于命令行进行c/c++开发

常见的linux的发行版本,主要针对普通用户研发的,拥有比较好的图形界面和完善的应用程序。其中每年的4月和10月都会发行两个版本,如果2023 年10月发布的,版本名就叫做23.10;centos是之前比较流行的主流linux版本,主要用在服务器上,现在服务器上主流的就是红帽;Linux下的文件名中以.开头的是隐藏文件/目录,如果不带点就是非隐藏目录/文件★Linux下面的路径是由/来进行分割的,但是在windows中使用\来分割;

2025-09-02 23:52:09 459

原创 C/C++查缺补漏《1》_C++/C中函数传参问题、C++中的匿名函数、C++中的匿名对象、C++中的cmath库和随机数实现、C++ vector 容器、C++预处理器

这篇文章目的是对之前总结的c++当中的知识进行查缺补漏。匿名函数(Lambda 表达式)是C++11引入的特性,允许在代码中定义临时的、未命名的函数,通常用于简化代码,尤其是在需要短小函数作为参数的场景(如算法回调)。基本语法:[capture-list](parameters) -> return-type { body };capture-list(捕获列表):指定外部变量如何被 Lambda 使用(值捕获、引用捕获等)parameters(参数列表):与普通函数的参数列表类似。

2025-08-23 15:51:57 777

原创 基于C语言基础对C++的进一步学习《4》_知识补充、C++中运算符重载、C++中的对象数组和对象指针、C++中的输入输出流、C++中的文件操作、一个关于理解C++中的类很有意义的练习

运算符重载的本质是函数重载,通过定义一个名为 operator@(@ 代表具体运算符,如 +、-)的函数实现。C++中的对象数组,就是由对象组成的数据,对象指针就是指向对象的指针。注意:如果要定义一个对象数组,如果是先定义,后初始化,那么就类中就得有无参构造函数。类中如果有字符串属性,如果构造或者其他类中方法要用strcpy函数给它拷贝值,那就将其设置为char类型,因为strcpy只能给char类型拷贝;

2025-08-21 00:07:37 955

原创 基于C语言基础对C++的进一步学习《3》_知识补充、组合类、类中的静态成员与静态函数、类中的常对象和常成员函数、类中的this指针、类中的友元

这段时间,C++知识的总结有些太概括,有些知识需要细分析,没有时间做,这篇文章就先补充一些知识点的细究总结,再继续学习C++面向对象的基础知识。如下面代码所示,如果出现常量Pi,就不要在构造函数的声明当中写了,在构造函数或者拷贝构造函数定义的时候,通过“成员初始化列表”完成对Pi的赋值。int x;int y;public:public:// 常量就不要写在参数列表当中了/*

2025-08-19 13:06:36 901

原创 基于C语言基础对C++的进一步学习《2》_C与C++对比的一些补充知识、C++中类的进一步学习、补充两个关键字dynamic_cast和const_cast、“父类指针数组指向子类对象空间”的合理性

系统默认的构造函数局限是什么?为什么我们要自己定义构造函数?,系统默认的析构函数局限是什么?为什么我们要自己定义析构函数?,系统默认的拷贝构造函数局限是什么?为什么我们自己要定义拷贝构造函数?默认的构造函数不会对基本数据的值进行初始化,其值为随机的 “垃圾值”,可能导致对象处于无效状态。我们自己定义构造函数需要通过带参数的构造函数强制传入必要参数,避免无效对象;默认的析构函数对手动分配的动态资源(如 new 分配的内存)完全不处理,会导致资源泄漏。

2025-08-16 17:51:04 1087

原创 基于C语言基础对C++的进一步学习《1》_C和C++编程范式、C与C++对比的一些补充知识、C++中的命名空间、文件分层、类的基础知识

因为之前已经有C的基础概念,那么对于C++的学习最好是对比着学,才能高效地掌握C++基础。C++ 是从 C 语言发展而来的,保留了 C 的核心语法和底层操作能力,同时引入了面向对象编程泛型编程(模板)、异常处理等高级特性。通过C和C++对比着学习,可以发现,C++本质就是对C的扩展,扩展了C不能面向对象编程的问题。C++的这一拓展也导致其编程范式和一些数据结构的书写规范有了区别,比如结构体在c中的定义和书写是一种方式,在C++中就更偏向于类的方式来书写结构体了。

2025-08-13 22:21:01 712

原创 C语言入门完结篇_结构体、枚举、时间函数的、变量类型(C语言划分内存各个区块的方法)、文件操作

c语言这个专栏,我写了已经7篇文章了,也算是通过自己学习归纳总结了一条对于自己来说学习c入门的最短路径。一些小问题的总结:如果使用了类似string.h的头文件,那么其中的函数,可以写在哪些位置?答:从标准规则而言,可以写在该文件下的任何位置,但也有特殊;比如调用stdlib.h中的srand函数,一般来说写一次就可以了,一般写在主函数中,或者自定义函数中,因为它只要执行,就是全局范围内修改了随机数种子,不建议单独写在主函数外面。

2025-08-12 22:14:20 681

原创 C语言中级_宏定义传参、volatile和extern关键字、字符串数组和字符串函数

宏定义传参可以理解成一种更便捷的函数,但和函数有明显区别的一点就是宏定义传参主打一个替换,其次就是实现简单逻辑可以,复杂的就不行了。volatile关键字和extern关键字是干什么的要知道即可字符串数组很重要,特别是定义方式很重要,还有就是常用的字符串函数要知道其作用,传入的参数,是否有返回值。特别是传入的参数和返回值类型,很重要,不像python记个差不多就行,在c中函数使用非常严谨。

2025-08-09 16:31:07 359

原创 C语言中级_动态内存分配、指针和常量、各种指针类型、指针和数组、函数指针

动态内存分配是一个重要概念,要和静态数组对比着学习;指针和数组搭配在一起,让指针理解的难度上了一个台阶,尤其是二维数组搭配指针,要获取数组的值,什么时候“取地址”,什么时候“解引用”都需要深刻理解一些概念才能正确使用指针和数组。写这些东西,就是把自己学习的笔记记录下来,供自己日后翻找,若是与此同时能给别人提供些帮助,那就更好了。

2025-08-07 19:48:44 718

空空如也

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

TA关注的人

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