- 博客(109)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 学 Linux_day8 用gdb观察变量在内存中的存储,打印变量地址和值
多个变量在内存中是如何排列的?GDB 可以同时让你看到“房间号”和“里面住着谁”,还能直接检查内存的原始内容。:局部变量在栈上通常从高地址向低地址分配(取决于系统),比如地址。快速列出所有参数和局部变量的值和地址(部分)。这能深刻理解“指针存地址”的含义。如果想看这些 locals 的地址,可以结合。先被定义,地址反而可能更高。你会看到每个整数在内存中的小端序存储形式。全局变量和静态变量不在栈上,而在数据段。的缩写,用于以各种格式查看某块内存。地址低端(接近代码区),且连续存放。这是你已掌握的基础用法。
2026-07-25 00:12:57
483
原创 学 Linux_day7 编写第一个Bash脚本,实现一键编译运行第一个C程序
本文介绍了如何编写第一个Bash脚本来自动化编译和运行C程序的流程。主要内容包括: 传统手动编译运行C程序的繁琐过程 Bash脚本的基本概念和优势 创建简单的Hello World程序并验证 编写基础脚本build_run.sh实现一键编译运行 脚本每行代码的详细解释 赋予脚本执行权限的方法 改进通用版本脚本支持任意.c文件 扩展功能:加入自动化测试 配套练习题(基础、进阶、提高三个难度) 文章通过具体示例演示了如何将重复命令封装成脚本,并逐步增加功能使其更通用和智能。适合Linux初学者学习基础脚本编写,
2026-07-22 23:49:32
242
原创 学 Linux_day6 GDB 监视点 `watch`
摘要: GDB的watch命令用于监视变量或表达式的值变化,当值被修改时自动中断程序,帮助定位意外修改问题。支持三种类型:watch(写监视)、rwatch(读监视)、awatch(读写监视)。使用流程包括编译调试版程序、设置断点启动、添加监视点并观察触发信息。监视点可结合条件(如watch x if x>10)过滤无关事件,通过info breakpoints管理。硬件监视点效率高,但数量有限;复杂表达式可能降级为低速软件监视点。典型应用包括追踪变量异常修改、替代printf调试。练习建议从基础变量监视过
2026-07-18 22:33:24
196
原创 学 Linux_day5 `diff` 命令与命令行自动化比对
diff 命令是 Linux 下用于文件比对的利器,在编程调试和自动化测试中至关重要。本文介绍了 diff 的基本用法,包括如何生成对比结果、理解输出格式,以及利用退出状态码实现自动化测试。通过输出重定向将程序结果保存为文件后,即可用 diff 与预期结果比对。文章还详解了常用选项(如 -u 统一格式、-w 忽略空白差异等),并提供了测试脚本编写实例,展示如何集成 diff 到自动化流程中。最后通过分层练习题帮助读者巩固基础操作和脚本编写能力,为构建简单判题系统奠定基础。(149字)
2026-07-18 22:29:53
282
原创 学 Linux_day4 GCC 调试信息选项
本文全面介绍了GCC编译器调试选项-g的使用方法和原理。主要内容包括:调试信息的作用(关联源代码与机器码,支持变量查看和函数跟踪);-g选项的基本用法和不同级别(-g0到-g3)的详细程度差异;与优化选项-O的配合使用注意事项;如何验证可执行文件是否包含调试信息(使用file和readelf命令);并通过实际GDB调试对比展示了有无调试信息的巨大差别。文章还提供了调试选项速查表和实践练习,帮助开发者掌握在开发阶段正确使用-g进行高效调试,在发布时去除调试信息的完整工作流程。
2026-07-15 00:43:14
406
原创 学 Linux_day3 GDB 常用命令速查卡学习资料
本文介绍了GNU调试器GDB的六大核心命令及其使用方法:1) break设置断点;2) run启动程序;3) next单步执行但不进入函数;4) step单步执行并进入函数;5) print查看变量值;6) backtrace查看调用栈。通过一个除法错误的示例程序演示了完整的调试流程,包括如何定位崩溃原因。文章还提供了常用命令速查表,并强调调试前需用-g选项编译程序。这些命令能帮助开发者有效诊断程序错误,提高调试效率。
2026-07-13 23:41:28
401
原创 学 Linux_day2 文件操作三剑客:`cp`、`mv`、`rm`
摘要:文件操作命令与GCC编译参数指南 本文介绍了Linux系统中三个核心文件操作命令和GCC编译器的两个关键参数。cp命令用于复制文件/目录,需注意-r选项用于目录复制;mv命令兼具移动和重命名功能;rm命令用于删除文件/目录,使用时需格外谨慎,特别是-rf组合。GCC编译器方面,-c选项实现只编译不链接,生成.o目标文件;-o选项可自定义输出文件名。文章还提供了命令使用示例、注意事项以及综合练习方案,帮助读者掌握这些基础但重要的工具。
2026-07-12 00:26:16
492
原创 学 Linux_day1 核心五命令:ls cd mkdir gcc ./a.out
这篇教程介绍了Linux命令行中最基础的5个核心命令: ls - 列出目录内容(-l查看详情,-a显示隐藏文件) cd - 切换目录(..返回上级,~回家目录) mkdir - 创建文件夹(-p可创建多级目录) gcc - 编译C程序(默认生成a.out,-o指定输出名) ./程序名 - 执行当前目录程序(必须加./前缀) 教程采用"用途+语法+示例+易错点"的讲解方式,最后提供了包含这5个命令的实操练习,帮助初学者快速掌握Linux基础操作。所有命令都区分大小写,且选项/参数之间需要空格分隔。
2026-07-12 00:01:56
1048
1
原创 Java 的变量与常量
在 Java 中,经常希望某个常量可以在一个类的多个方法中使用,通常将这些常量称为 类常量(class constatn)。与所有程序设计语言一样,Java 也使用变量来存储值。使用 final 修饰的常量是明确的指定该变量属于一个不可修改的常量。而实际上,变量中存储的值 就是一个常量值,如 num = 10;在 java 中,利用关键字 final 指示常量。声明变量后,必须使用赋值语句对变量进行显示初始化。10 就是一个存储在变量num当中的常量值。有时候,变量的取值只在一个有限的集合内。
2024-04-20 15:09:47
540
原创 Java 的数据类型
与之相反,C和C++程序会针对不同的处理器选择最为高效的整型,这就会造成一个在 32 位处理器上运行很好的C程序在 16 位系统上运行时却发生整数溢出。实际上,只有很少数的情况下适合使用 float 类型,例如:需要单精度数的库,或者需要存储大量数据时。而 byte 和 short 有特定的应用场合,例如:底层的文件处理 或者 存储空间很宝贵时的大数组。int 类型较为常用,但要表示整个地球的居住人口数量,就要选用更为合适的 long 类型。float 类型的后缀有一个 F 或 f(例如,3.14F)。
2024-04-19 16:53:05
1048
原创 Java 的注释
与大多数的编程语言一样,Java 中的注释也不会出现在可执行程序中。因此我们可以在源程序中根据需要添加任意多的注释,而不必担心可执行代码受到任何影响。
2024-04-18 15:32:06
540
原创 兔C_Java集:Java 程序基本概念
变量和常量的本质区别在于:常量内容是固定的,而变量的内容是可以改变的。变量的使用需要提前声明,声明数据类型并将内存中某个内存块保留下来以供程序使用。常量是一个固定的值,不可改变。如:在上述代码段中,变量有:num 和 result,而常量值有:10、2++ 自增、-- 自减根据位置不同,执行的顺序也不同。++变量,--变量:写在前面表示的是先进行变量内容的自增 1 或 自减1,再使用变量进行数学计算;变量++,变量--: 写在后面表示先进行变量值的计算,而后在实现自增或自减的操作。
2024-04-16 15:29:24
1255
原创 兔C_Java集:Java 语言简介
Java 是一门编程语言,发展至今,已经成为一个真正意义上的语言标准,现在一些技术开发公司为了方便用户进行程序的编写,往往都使用 Java 作为应用层封装的标准,通过 Java 来调用一些底层的操作。于 1995 年,SUN 公司正式将 OAK 更名为 Java 进行推广。第一阶段(完善期):JDK 1.0,1995 年推出 —— 1992年 JDK 1.2 版本第二阶段(平稳期):JDK 1.3 —— JDK 1.4。
2024-04-16 15:27:43
1395
原创 微信小程序的配置文件使用说明:
在上一文中,我们准备好了开发小程序时所需的环境和准备工作,同时也简单的了解了一下小程序的项目结构组成。这一章,我们主要对小程序的配置文件进行学习。
2024-03-20 00:33:08
2451
2
原创 学习开发小程序的起航日记
这又是最后一块内容了,创建页面。目前我们只有一个 index 界面。想创建更多迎合自己需求的界面,你可以在 pages 下手动一点点创建。
2024-03-16 16:26:58
1295
原创 用Django 写学习笔记程序第三章.2Heroku部署程序
404.html# 500.html# 修改 settings.py# debug为false时必须指定主机],},},设置 SECRET_KEY,通过该值可实现大量的安全协议。在这个项目中,我们提交到仓库的设置文件包含设置SECRET_KEY。对于一个练习项目来说,足够安全,但对于生产网站,应该更细致的处理设置SECRET_KEY。
2024-03-12 16:56:16
1466
原创 使用 Git 跟踪项目文件
为了让 Git 忽略这个目录,创建一个名为.gitignore的特殊文件,这个文件名以句点开头,且没有扩展名。你可以检查出提交历史中的任何提交,而不仅仅是最后一次提交,为此可在命令 git check 末尾指定该提交的引用 ID的前6个字符。检查出以前的提交,可对其进行审核,然后返回到最后一次提交,或者放弃最近所做的工作,并选择以前的提交。为体现Git版本控制的强大能力,我们对项目进行修改,并提交所做的修改。输出指出,我们当前所在的分支被修改了内容的文件,还指出了尚未进行提交。
2024-03-12 00:26:22
1758
原创 Heroku注册失败-We could not verify you are not a robot. Please try the CAPTCHA again.
最近在刷《python编程从入门到实践》这本书,书中的最后一块内容叫“学习笔记”,这样的一个程序(感兴趣可移步至个人主页查看)。而书的最后一章(第二十章),就是将这个程序部署到服务器。一直注册不了,上网查了很多内容,想看大家是怎么注册的,可惜,供查阅的内容很少,在仅有的内容里,大家不是很早就注册了,年头悠久,要么就是说邮箱问题。部署到服务器首先需要注册一个 heroku账户,可注册时,一直报错说验证是否为机器人。最后,做了各种尝试,为了补上这块缺板,发了这篇文章。
2024-03-10 15:36:53
1906
3
原创 用Django 写学习笔记程序第二章.3让用户拥有自己的数据
本期内容中,我们将修改Topic模型,让每个主题都归属于特定的用户。迁移数据库时,Django将对数据库进行修改,使其能够存储主题和用户之间的关联。用户应该能输入其专有的数据,为此,我们创建一个系统,确定各项数据据所属的用户,再限制对页面的访问,让用户只能使用自己的数据。Django 提供了装饰器 @login_required,让我们能够实现限制访问,对于某些页面,只允许已登录的用户访问。将数据关联到提交他们的用户,我们只需将最高层的数据关联到用户,这样更低层的数据将自动关联到用户。
2024-03-07 00:36:00
1357
原创 用Django 写学习笔记程序第二章.2创建用户账户
为此,在目录learning_log/users/中,创建一个名为 templates 的目录,并在该目录下创建一个名为 users的目录。创建让新用户可以注册的页面,我们使用Django提供的表单UserCreationForm,但编写自己的视图函数和模板。现在需要给用户提供一个注销的页面,我们不创建用于注销的页面,而是让用户只需点击一个链接就能注销并返回到主页。建立一个用户注册和身份证系统,让用户能够注册账户,进而登录和注销。修改项目根部目录的urls.py,使其包含users的URL。
2024-03-06 00:30:14
1227
原创 用Django 写学习笔记程序第二章.1让用户能够输入数据
创建Web应用程序时,会用到两种主要请求类型:GET 和 POST。对于只从服务器读取数据使用 GET请求。在用户需要提交数据时,通常使用 POST请求。此项目中我们处理所有表单数据都使用 POST请求。用户输入信息时,需对其进行校验,确认提供的信息是并非恶意的,且是正确的数据类型。然后在对这些信息有效信息进行处理,将其保存到数据库的合适地方。在Django中,创建表单的最简单方式是使用 ModeForm,它根据模型自动创建表单。这里,我们将可以让用户输入并提交信息的页面称为表单,哪怕它看起来不像表单。
2024-03-05 16:32:27
1290
原创 学习Django编写“学习笔记”程序
Django 是一个 Web 框架,一套用于帮助开发交互式网站的工具,Django能够响应网页请求,还能让你更轻松地读写数据库、管理用户等。现在需要考虑涉及的数据。每位用户都需要在学习笔记中创建很多主题,用户输入的每个条目都与特定主题相关联,这些条目将以文本的方式显示。我们还需要存储每个条目的时间戳,以便用户能够知道每个条目大概在什么时间段创建。打开 models.py,查看其包含内容。这里我们看到,这个类在创建时候就导入了 models模块。该模块可以让我们创建自己的模型。
2024-02-26 14:41:39
1067
原创 Python API的使用简述
本篇文章:我们叙述如何编写一个独立的程序,并对其获取的数据进行可视化。这个程序将使用 Web应用编程接口(API)自动请求网站的特点信息而不是整个网页,再对这些信息进行可视化。
2024-02-10 21:25:38
1267
原创 关于如何使用 python 下载 json 格式数据
上篇文章的学习,不仅了解了使用 python 下载 csv格式的数据,并且还知道了 可以通过matplotlib 将所下载到的数据绘制成图,以便更好的观察数据。而json格式的数据 python 也提供了相应的处理方式,也就是通过 json模块进行处理。并且可以通过 Pygal 进行可视化。
2023-07-07 00:05:03
2170
原创 关于如何使用 python 下载CSV格式数据
本章节内容节自《python 编程从入门到实践》第十六章,我们将从网络上下载数据,并对数据进行可视化。就可以对其进行分析甚至观察其规律和关联。
2023-05-24 16:11:28
4422
1
原创 用 Pygal 模拟掷骰子
这篇博客,我们将学习使用 python可视化包 Pygal 来生成矢量图形文件。针对于需要在尺寸不同的屏幕上显示的图表具有很大用处。因为它们可以自动缩放,以此来适合观看者的屏幕。在这个项目中,我们将对掷骰子的结果进行分析。掷6面的常规骰子,所投掷结果的可能性相同。但如果同时投掷两个骰子,某些点数出现的可能性将比其他点数大。为了确定哪些点数出现的可能性最大,我们生成一个表示投掷骰子结果的数据集,并根据结果绘制出一个图形。
2023-05-09 21:56:31
744
原创 关于 《python 从入门到实践》的 matplotlib 随机漫步小项目
使用 python 生成随机漫步数据,再使用 matplotlib 将数据呈现。所谓随机漫步:每次行走的路径都是完全随机的,就像蚂蚁在晕头转向的情况下,每次都沿随机方向前行路径。在自然界,物理学,生物学,化学和经济领域,随机漫步都有很多实际用途。例如:漂浮在水滴上的花粉因不断受到水分子的挤压而在水面上移动。水滴中的分子运动是随机的,因此花粉在水面上的运动路径犹如随机漫步。
2023-05-07 22:35:45
675
原创 Matplotlib 初使用
RGB模式指定颜色需要设置元组 plt . scatter(x_values , y_values , c =(0 , 0 , 0.8) , edgecolor = 'none' , s = 40)
2023-05-06 21:03:16
1164
原创 Matplotlib 安装介绍
我这里报了 error,先不管这个问题,我一会自己解决,如果这时候你安装好了,可以测试一下了。cp后边就是对应的python版本,win是windows系统,后边的 64位就是64位了。在这里录入cmd 敲击回车打开命令行窗口,用这种方式打开命令行,就不用自己cd进到文件了。这里给大家看一下我的版本,然后在给大家看一下怎么去找对应的版本号。下载这个 whl文件,然后将这个文件放到你的项目中。下载之前,看一下自己的python版本。点击下载按钮,然后继续找对应的版本。
2023-05-02 21:44:17
3057
4
原创 用python写游戏:《外星人入侵》给游戏添加记分功能
项目需求:在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。
2023-04-24 00:24:30
960
1
原创 用python写游戏:给《外星人入侵》添加结束设置
项目需求:在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。在第一阶段中,我们创建了一艘可以左右移动的飞船,这艘飞船在用户按空格键时能够开火。
2023-04-09 22:14:27
652
原创 解决:typora 无法将图片自动上传问题
以前用都是免费的,忘记从去年什么时候开始收费了。因为用的习惯,用的舒服,而且买一个的话不止有一个激活次数,便买了。以前写博客,都在上直接写了,虽然上面也有格式,可还是会担心网络不好,内容保存有丢失情况。又改变习惯,用买来的。可是每次上传图片的时候都会遇到问题:图片可以放在创建的草稿里,可是在粘贴草稿里的内容,放到时候就传不上去了。如果把图片存在本地里还好一点,还可以一张张手动放进去,可如果只是粘到草稿里的就麻烦了。
2023-04-05 22:21:49
769
原创 用python写游戏:《外星人入侵》---> 添加外星人
玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度。如果check_edges()返回True,我们就知道相应的外星人位于屏幕边缘,需要改变外星人群的方向,因此我们调用 change_fleet_direction() 并退出循环。因此,显示一个外星人所需的水平空间为外星人宽度的两倍:一个宽度用于放置外星人,另一个宽度为外星人右边的空白区域。在这句代码语句中,我们从外星人的rect属性中获取外星人的宽度,并将这个值存储到 alien_width中,以免反复访问属性rect。
2023-04-03 22:45:26
864
原创 用 python 写游戏《外星人入侵》:限制飞船的活动范围并给飞船增加射击功能
发射出去后,子弹在屏幕中向上移动,这意味着y坐标将不断减小,因此为更新子弹的位置,我们从self.y中减去self.speed_factor的值。子弹应从飞船顶不射出,因此我们将表示子弹的rect的top属性设置为飞船的rect的top属性,让子弹看起来像是从飞船中射出的。这些子弹实际上依然存在,它们的y坐标为负数,且越来越小。如果代码最后没有问题,确认子弹可以正常删除,我们将print语句删除,如果留下这条语句,游戏的速度将大大降低,因为将输出写入到终端而花费的时间比将图形绘制到游戏窗口花费的时间还多。
2023-03-23 23:23:12
1049
原创 用python写《外星人入侵》游戏:武装飞船 >1
昨天的文章,我们设置好了本地环境。现在,我们有了 python,有了安装 pygame所需的pip,和pygame。接下来我们就开始进入项目阶段。首先创建一个空的pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景颜色以及加载飞船图象。设置背景颜色我们来给游戏背景做一些设置。现在有了设置类,就要去更改一下 alien_invasion 模块的代码了,因为我们需要通过设置类的调用来设置参数了。添加飞船图像我们先在项目中创建一个文件夹,并将其命
2023-03-16 15:53:38
1911
3
原创 用python写一个《外星人入侵》游戏 准备阶段:安装pygame、pip
我们这次开发小游戏需要使用 pygame,它是一组功能强大而有趣的模块,通常用于管理图形、动画乃至声音,通过它我们可以在屏幕上绘制图像等任务。
2023-03-13 21:20:33
1034
外星人入侵code分享
2023-04-24
新版本的typora去哪里买?
2021-12-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅