<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Pucturth的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Pucturth</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Pucturth]]></copyright><item><title><![CDATA[C语言笔记：通过两道题来理解结构体的作用]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/170246873</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/170246873</guid><author>Pucturth</author><pubDate>Sat, 07 Nov 2026 21:16:00 +0800</pubDate><description><![CDATA[这两道题分别用了不同的方法，但是都展现了结构体的优点：通过将离散的数据属性封装为逻辑整体，结构体简化了数据传递与比较的复杂度，使的数据的调用变得方便快捷，而且体现了模块化编程的思想，使构造更加复杂的代码成为可能。]]></description><category></category></item><item><title><![CDATA[C语言笔记：指针]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/168729033</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/168729033</guid><author>Pucturth</author><pubDate>Thu, 22 Oct 2026 08:58:24 +0800</pubDate><description><![CDATA[指针是 C 语言的灵魂，也是它与其他高级语言最显著的分水岭。它让程序能够直接操作内存：既可以高效地传递大块数据而不必复制整份副本，也能让函数修改调用者的变量，还能构建链表、树等动态数据结构，甚至直接访问硬件寄存器。指针既是 C 语言赋予程序员的自由，也是要求程序员承担的责任。也是副本，但它和外部拿到的是同一个地址 ，所以顺着这个地址写数据，改到的就是那唯一一份。函数调用时，实参的值会被复制一份给形参。指针可以被复制，复制的是地址值，而不是被指向的数据；而传指针时， 复制的不是值，是地址。]]></description><category></category></item><item><title><![CDATA[通过珠心算来理解数组下标与内容的关系]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/167128003</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/167128003</guid><author>Pucturth</author><pubDate>Mon, 05 Oct 2026 16:09:47 +0800</pubDate><description><![CDATA[这种做法直观却笨重，且同一个数可能被多次计入答案，还需要额外去重，因此，第三重循环完全是在做无用功，我们仅仅是为了确认“和是否存在于集合中”。数组下标的运用，加深了我对计算机底层逻辑的理解：高效的算法往往不是算得更快，而是少算甚至不算，通过合理组织数据，让答案自己显现出来。：初学编程时，我们习惯把数组当作一只“装东西的盒子”：arr[i] 里存的是第 i 个数，所有运算都围绕盒子里的内容展开。：做完这道题我才明白，下标本身也可以是被存储的信息，只要值域允许，就能把“寻找”变成“定位”，把循环变成一次访问。]]></description><category></category></item><item><title><![CDATA[c语言入门：数组]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/167027320</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/167027320</guid><author>Pucturth</author><pubDate>Sat, 03 Oct 2026 09:12:00 +0800</pubDate><description><![CDATA[它将大量同类型的数据存放在一块连续的内存空间中，使得我们可以通过一个统一的变量名和下标来高效地批量处理数据。#四结语：冒泡排序胜在“相邻交换”的简单直观，而插入排序胜在“寻找空位”的自适应高效。核心思想：将数组分为“已排序”和“未排序”两部分。就像打扑克牌时整理手牌一样。1.数组是一种可以保存数据的数组结构，C语言中数组没有默认值（会输出内存中的垃圾数据，因此，局部数组在定义时进行初始化是一个良好的编程习惯。核心思想：通过相邻元素的不断比较和交换，每一轮都将未排序部分的最大值“冒泡”到数组末尾。]]></description><category></category></item><item><title><![CDATA[C语言入门：输入与输出]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/166992708</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/166992708</guid><author>Pucturth</author><pubDate>Fri, 02 Oct 2026 16:17:29 +0800</pubDate><description><![CDATA[一前言：C语言的输入与输出与Java有很大区别，与java语言可以直接输出内容不同，C语言中需要通过占位符来输出内容，这种差异并非 C 语言故意设置障碍，而是两种语言的设计哲学不同。Java 的打印方法接收的是对象，对象自带类型信息，虚拟机能在运行时自动判断"这是整数还是字符串"。而 C 语言没有运行时类型信息，printf 只是一个普通函数，它拿到的只是内存里的一串二进制数据——它无法自行分辨这段数据是整数、小数还是字符。占位符本质上是程序员与编译器之间的一份数据解读协议。]]></description><category></category></item><item><title><![CDATA[写五子棋游戏中遇到的一些问题]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/165234965</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/165234965</guid><author>Pucturth</author><pubDate>Sun, 13 Sep 2026 16:20:14 +0800</pubDate><description><![CDATA[同样，判断代码写在了画棋子之后，但是画棋子代码之前已经有了存颜色和判断是否棋盘之外代码，判断已下棋子代码的原理，是判断矩阵对应位置数字是否不等于0，倘若把他放在存颜色之后，因为此时矩阵已不等于零，而并没有画棋子，会使代码在画棋子之前强制终止，因此应该把该代码放在存颜色代码之前，从下第2颗棋开始执行代码，始终使第一个代码的颜色可被存。编码过程中由于没有注意代码的顺序，导致很多逻辑错误，使代码无法判断棋子的输赢，是否已有棋子，棋子是否下到棋盘外，说明在JAVA语言中代码的逻辑是根据自上而下的顺序显明的。]]></description><category></category></item><item><title><![CDATA[Java AWT/Swing 五子棋游戏开发笔记二]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/165091044</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/165091044</guid><author>Pucturth</author><pubDate>Sat, 12 Sep 2026 09:50:50 +0800</pubDate><description><![CDATA[getGraphics() 获取的画笔是临时的，一旦窗口需要重绘（如被遮挡、最小化还原），系统会调用 JPanel 的 paint 方法。重点反思了当前实现方式中存在的“图形易丢失”问题，并探讨了如何利用“数据驱动视图”的思想进行优化，迈向更健壮的程序设计。系统自动调用 Mpanel 的 paint 方法，paint 方法根据 shapeArr 中的数据，重新绘制棋盘和所有棋子。在 Mpanel 的 paint 方法中，不仅要绘制棋盘网格，还要遍历 shapeArr，将所有棋子绘制出来。]]></description><category></category></item><item><title><![CDATA[Java AWT/Swing 五子棋游戏开发笔记一]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/165088047</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/165088047</guid><author>Pucturth</author><pubDate>Sat, 12 Sep 2026 09:35:13 +0800</pubDate><description><![CDATA[正确的做法是遵循“数据驱动视图”的原则，将所有需要显示的内容都作为数据保存起来，并在 paint 或 paintComponent 方法中统一绘制。getGraphics() 获取的画笔是临时的，一旦窗口需要重绘（如被遮挡、最小化还原），系统会调用 JPanel 的 paint 方法。而当前的 Mpanel.paint 方法只负责画棋盘网格，对已下的棋子一无所知，导致棋子全部消失。系统自动调用 Mpanel 的 paint 方法，paint 方法根据 chessList 中的数据，重新绘制棋盘和所有棋子。]]></description><category></category></item><item><title><![CDATA[Java 面向对象基础笔记：类与对象]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/164122262</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/164122262</guid><author>Pucturth</author><pubDate>Thu, 27 Aug 2026 17:32:55 +0800</pubDate><description><![CDATA[通过“学生”这一实体类的定义与调用，我们将理清类与对象的关系，掌握 Java 类的三大组成要素，并理解面向对象编程的核心思想。代码对应：在提供的文档中，Student 就是一个类。逻辑复用：exercize 方法中的 for 循环展示了如何在方法内部处理复杂的业务逻辑（体能与 HP 的同步增长）。通过这个案例，我们完整地走通了 定义类 -> 创建对象 -> 赋值属性 -> 调用方法 的 Java 开发全流程。定义：对象是类的具体实例。一句话总结：类是图纸，对象是根据图纸盖出来的房子。]]></description><category></category></item><item><title><![CDATA[题解笔记：海伦公式求三角形面积]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/163921524</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/163921524</guid><author>Pucturth</author><pubDate>Thu, 20 Aug 2026 16:31:41 +0800</pubDate><description><![CDATA[给定三角形三边长 a、b、c，利用海伦公式计算面积，结果四舍五入保留 1 位小数。️ 注意：题目描述中容易漏掉根号，实际公式需要开根。其中 p=（a+b+c）/2。格式化输出，保留 1 位小数。读入三边长 a、b、c。]]></description><category></category></item><item><title><![CDATA[图形重绘与数组学习小结]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/163781105</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/163781105</guid><author>Pucturth</author><pubDate>Sat, 15 Aug 2026 16:30:31 +0800</pubDate><description><![CDATA[在开发画图工具的过程中，我遇到了一个问题：为什么画好的图形在窗口最小化或被遮挡后就会消失？我利用“数组”和“重绘机制”解决了这个问题。]]></description><category></category></item><item><title><![CDATA[Java继承与方法重写学习笔记]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/163729858</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/163729858</guid><author>Pucturth</author><pubDate>Thu, 13 Aug 2026 16:47:46 +0800</pubDate><description><![CDATA[今天学习了Java中的继承和方法重写，通过一个简单的“水果”例子来加深理解。]]></description><category></category></item><item><title><![CDATA[Java 事件监听与登录验证教学]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/163343854</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/163343854</guid><author>Pucturth</author><pubDate>Tue, 11 Aug 2026 09:15:33 +0800</pubDate><description><![CDATA[对象传递机制：由于事件处理类无法直接访问主界面的文本框对象，需通过构造方法或 Setter 方法将主界面的对象引用传递给事件处理类。属于引用类型中的接口（Interface），其内部方法只有定义（分号结尾）而无具体实现（方法体）。关键字实现接口，并强制重写（Override）接口中的抽象方法，将分号改为大括号并填充方法体。确定事件源：明确交互动作发生的组件，如登录按钮（Button），该类组件必须是实体组件。JLabel user = new JLabel(“登陆成功”);]]></description><category></category></item><item><title><![CDATA[简易画图工具]]></title><link>https://blog.youkuaiyun.com/Pucturth/article/details/163655287</link><guid>https://blog.youkuaiyun.com/Pucturth/article/details/163655287</guid><author>Pucturth</author><pubDate>Tue, 11 Aug 2026 09:13:41 +0800</pubDate><description><![CDATA[JButton jbu6 = new JButton(“橡皮擦”);JButton black = new JButton(“黑色”);JButton jbu2 = new JButton(“矩形”);JButton jbu5 = new JButton(“曲线”);JButton blue = new JButton(“蓝色”);JButton jbu = new JButton(“直线”);JButton red = new JButton(“红色”);if (“曲线”.equals(name)) {]]></description><category></category></item></channel></rss>