- 博客(31)
- 收藏
- 关注
原创 01-操作系统概述
操作系统是在硬件和应用之间的软件层。应用 -------- 操作系统 -------- 硬件操作系统和应用的关系:应用功能越来越多操作系统沉淀越来越多功能、内涵与外延不断扩大操作系统和硬件的关系意识 VS 身体计算机百科全书的解释操作系统的管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。对下管理硬件,对上构筑应用生态");return 0;./hello操作系统指挥显卡完成显示的过程,点阵➢ hello 这个可执行文件存储在什么位置?是如何存储的?
2025-12-06 15:54:48
979
原创 强制类型转换
转换类型典型场景安全性性能相关类型转换、非多态类层次转换编译时检查高多态类层次安全向下转换运行时检查较低const_cast修改constvolatile属性依赖使用场景高二进制级重新解释极不安全高最佳实践建议优先使用,因其在编译时提供类型检查。多态类型转换必须使用以确保安全。避免频繁使用const_cast,除非处理不可修改的旧代码。应视为最后手段,使用时需详细文档说明。*p = 20;free(p);test();return 0;允许结果。
2025-11-29 11:39:14
250
原创 C++智能指针学习
unique_ptr 可用于管理 new 出来的动态对象,也可以管理其他需要手动关闭的资源。例如:文件对象。由于 unique_ptr 默认使用 delete、delete[] 来释放被管理的资源。所以,当管理的对象不能通过 delete、delete[] 来释放时,就需要自定义删除器。if (fp!
2025-11-29 11:11:38
875
原创 C++的奇技淫巧
C++是C的超集,但两者在编译和链接时存在差异。C++支持函数重载、命名空间等特性,导致编译器会对函数名进行修饰(name mangling),而C不会。混合编程需解决符号命名和调用约定的一致性。
2025-11-29 09:35:30
140
原创 2.socket套接字
socket独立于具体协议的编程接口,位于TCP/IP四层模型的应用层于传输层之间。,也就意味着可以使用套接字实现通络通信,使用read/write。可以直接跳过传输层,读取没有进行处理的IP数据包。提供无连接的服务,不能保证数据传输的可靠性。面向连接,提供数据传输服务,是可靠连接。流式套接字(SOCK_STREAM)数据报套接字(SOCK_DGRAM)针对于传输层协议为TCP协议的应用。主要针对传输层为UDP协议的应用。原始套接字(SOCK_RAW)套接字当成是一种特殊的。
2025-11-16 22:21:39
417
原创 链表相关题目
如果两个链表相交,那么一定会像下图一样,在某一个节点相交,后续的节点就相等于了,因为链表只有一个next指针,所以是不可能分叉的。解题步骤:我们可以先计算h1的链表长度,再计算h2的链表长度,得到它俩的差值,比如h2比h1长n个节点,那么先让h2走n的节点,相当于让h1和h2的起点在同一层,那么两个链表总会在某一个节点相交,返回这个节点就行,如果两个链表不相交的话,那么它们的最后一个节点一定是不相等的。代码部分。
2025-08-03 16:01:26
947
原创 位运算练习题
由上面可以看出,2的次幂就是只有一个bit位为1的数,我们可以通过Brian Kernighan算法,求出这个数二进制状态最右侧的1,如果求出来的数等于原来的数,那么这个数就是2的次幂,下面举个例子,就能看懂了。2的0次幂 0000 0001。2的1次幂 0000 0010。2的2次幂 0000 0100。2的3次幂 0000 1000。
2025-07-27 21:14:15
337
原创 异或运算练习题
解法:准备一个数组,获取每个数字的所有bit位,假设我们只有4位,当然32位是一样的,第一个数为1010,出现了m次,那么数组中的元素为[m, 0, m, 0],第二个数是0101,出现了m次,那么数组中的元素为[m, m, m, m],第三个数为1100,出现了m次,数组中的元素为[2m, 2m, m, m],第四个数为0011,假设出现了n次,那么数组中的元素为[2m, 2m, m+n, m+n],将数组中的每个元素都对m取模,那余k的bit为就是这种数。题目六:返回出现次数小于m次的数。
2025-07-26 22:58:26
466
原创 一个队列实现栈
如何利用一个队列实现栈,栈的思想是后入先出,队列的思想是先入先出,下面将以图解的方式给大家展示。1.首先入队一个数据;2.再入队一个数据,目前这样还是队列,a先出,没有达到栈的后入先出思想;3.将a出队再入队,这样就达到栈的思想了;4.再入队一个c。
2025-07-06 15:47:02
151
原创 两个队列模拟栈实现
队列:先进先出(FIFO),栈:后进先出(LIFO)采用两个队列模拟栈,s2入栈,s1出栈,其原理就是将数据入队到s2中,然后将s1的数据入队到s2中,然后把s1和s2的指针互换,这样就能实现后入先出的概念了,这样说有点抽象,且看下面分解。首先给大家讲一下队列的基本操作,定义一个结构,表示队列;如何判断队列是空队列:队首指针(head/front) = 队尾指针(tail/rear)如何判断队列是满队列:(对尾指针+1) % 队列容量 = 队首指针。
2025-06-12 22:47:49
351
原创 Git版本管理控制
比如一个项目有两个模块,a负责模块一,b负责模块二,a修改模块一之后准备提交,但是b修改的模块二在a提交之前就提交了,a提交的时候就会冲突,这个时候就可以使用git pull,git pull会自动合并,合并时会创建一次提交。git reflog 记录所有的更改,是当你的项目损坏时(只要提交过),它给了你挽回的机会,但是它只会保存在本地仓库(不能push),且默认之保留90天。这种情况就是已经add到缓冲区了,此时缓冲区和工作区的文件是一样的,再从缓冲区检出就没有意义了,此时要从仓库中检出。
2025-05-25 15:57:59
1746
原创 【C语言阶段】- 01 安装编译环境
简单的说,语言是人类进行沟通和交流的工具,广义的说,语言是一套具有共有规则的指令,指令可以通过文字、嗅觉、触觉等方式传递。xxxxx of xxxxx ---> A of B --> B的A。
2025-05-01 09:11:37
875
原创 python学习-pyautogui库
注意我们的屏幕一般是1920*1080,第一个像素点的位置是0,0,所以最后一个像素点的位置是1919,1079。eastOutQuad:start fast, end slow 开始快,结束慢。easeInQuad:start slow, end fast 开始慢,结束快。- deration:移动到这个点需要多久,秒级别,最小值是0.1秒。鼠标位置可以以元组形式传入,也可以以x, y传入,移动的是绝对坐标。注意:一定不要太快,否则会太快导致无法推动到目标位置。
2025-04-04 23:20:39
295
原创 C语言学习-动态内存管理
我们已经掌握的内存开辟方式有:intval20;//在栈空间上开辟四个字节chararr100//在栈空间上开辟10个字节的连续空间void*mallocsize_tsize但是上述的开辟空间的方式有两个特点:1.空间开辟大小是固定的。2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道, 那数组的编译时开辟空间的方式就不能满足了。
2025-03-30 20:28:44
1920
原创 C语言学习-指针进阶
p就是第一行数组本身(如同p=&m,*p就等于m本身),那么*(p+1)就相当于第2行本身,就相当于arr[1]这一段在鹏哥C语言视频的P107,指针进阶_数组指针,不容易理解,重点看一下。但是按照上面的用法感觉比较别扭,更推荐大家使用下面的方法。p是指向一个整型数组的,数组5个元素 int [5]p+1 -> 跳过一个有5个int元素的数组。p的类型是:int(*)[5]
2025-03-20 22:51:31
182
原创 C语言二维数组练习-扫雷游戏
创建了2个数组,一个是mine,用于设置雷的数组,一个是show,用于展示给玩家的数组,为了方便计算数组周围雷的数量,数组初始化为了11行11列,这样的好处就是不用多做一个判断,只需要在打印的时候,注意打印1~9的索引就可以了。
2025-03-15 22:14:28
246
原创 C语言学习记录-操作符
逻辑反操作负值正值取地址sizeof操作数的类型长度(以字节为单位)对一个数的二进制按位取反--前置、后置--++前置、后置++间接访问操作符解引用操作符类型强制类型转换。
2025-03-15 14:22:36
955
原创 Tkinter库的学习记录-随记1-监听字符串
trace_add` 是 `StringVar` 中用于监听变量变化的核心方法,支持 `"write"`、`"read"` 和 `"unset"` 三种模式。- 通过 `trace_remove` 可以移除监听器,避免不必要的回调。- `trace_info` 可以获取当前变量的所有监听器信息。- 建议使用 `trace_add` 替代已弃用的 `trace_variable`。
2025-03-09 22:55:11
1763
原创 Tkinter库的学习记录
messagebox参数详解messagebox.showinfo('title', 'message', parent=window名)监听字符串self.emp_internation为创建的字符串变量,ttk.String()trace_add('write', 函数名),监听字符串变量写入之后需要干什么。表头组件创建表格组件参数表头标识 columns, 参数后面可以接列表,列表中有几个元素,就增加几个表头去除默认表头 show="headings"
2025-02-16 23:21:47
666
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅