自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java实现——拼图游戏

完整的实现效果使用Java实现拼图游戏。界面使用的是JFrame实现。

2024-04-24 16:30:02 2314 7

原创 Java项目——图书馆管理系统

在实现一个项目的时候,我们一般将不同功能放在不同的文件中,以下目录中,标题一是软件包,标题一下的标题二,是我在软件包中定义的类。最后的标题一,是主函数。

2024-04-20 20:48:27 648 2

原创 数据结构(顺序表,链表,栈,队列的实现)

顺序表是一种线性表,是n个具有相同特性的数据元素的有限序列,呈现出一条线性,常见的线性表有,顺序表,链表,栈,队列,字符串,本质上都是数组,但是在数组上区分了静态的与动态的,而且是挨着存放的。不带头链表的头节点指针要指向第一个数据,如果我要头插,我需要改变这个头节点指针指向的位置,在头部插入一个新的节点,那么头节点就要指向这个新的头,我要改变这个指针指向的方向,所以,我要传参这个指针的地址,也就是二级指针。关于不带头链表,就是一个普普通通的链表,每一个节点都储存数据,和下一个节点的数据。

2024-04-01 18:18:47 569 1

原创 leecode关于链表的部分题解

思路:让第一个节点率先出动,寻找到合适的位置,能使其再次运动到最后位置的移动次数为,倒数第k个,简单点说就是将问题从找到倒数第k个节点,转化为找到正数第n-k个节点。思路:三个指针,n1,n2,n3。思路:创建一个新的链表,两个指针对原来两个升序链表的头节点的值进行判断,之后将较小的值放入新的链表中。思路:快慢指针,让一个指针的速度为另一个指针的两倍,当快指针走到尽头时,慢指针走到链表的中间位置。思路:我们找到链表的中间节点,之后将链表分割,将后一部分的链表逆置,与另一个链表进行比较。

2024-03-30 18:16:35 157 1

原创 指针进阶(其一)

在我们写这个代码的时候,有的编译器可能会报警告,会说这个指针是不安全的,我们的“abcdef”是一个常量字符串,但是p是一个变量,是可以被改变的,非要强行改,会发生写入权限冲突,需要对p进行限制const char* p="abcdef";我们在执行这个代码的时候,表示的依然是整个数组,取出的是整个数组的地址,但与数组首元素的地址是一样的,数组的地址就是首元素的地址,但其实是有区别的。显然第一种,第二种与第三种都是可以的,传参,可以传一个数组,这个一维数组可以是规定好的,也可以不写大小,也可以传一个指针。

2024-03-21 15:39:59 1270 1

原创 浮点数在内存中的存储方式

IEEE754规定,在计算机内部保存M的时候,默认这个数的第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分,比如保存1.01的时候,只保存01,等读取的时候,再把第一位的1加上去,这样做的目的,是节省1为的有效数字,以32位浮点数为例,留给M的只有23位,将第一位的1舍去之后,可以保留24位有效数字。当我再看num的值的时候,我是以整型的方式看的,但是num按照浮点型的方法储存的,最终拿不到想要的结构,是因为整型与浮点型的储存方式不一样。这样做是为了表示+-0,以及接近于0的很小的数字。

2024-03-10 19:16:58 544 1

原创 二级指针与指针数组

还记得我们讲数组的时候,当面对大量的变量的时候,一个一个创建将非常麻烦,所以我们使用数组,来应付大量变量的创建,指针数组也是一样,当我们面临大量的指针需要创建时,我们就会使用指针数组。我们既然可以使用pa将a的地址储存起来,我们就可以使用另一个指针变量,将存放a地址的变量的地址储存起来。第二个*刚告诉我们ppa是指针,那前面的int*告诉我们,ppa指向的对象是int*类型的。二级指针是用来存放一级指针变量的地址,而且,凭借二级指针,我们就可以创建指针数组。这是一个很简单的二维数组的实现。

2024-03-03 17:52:35 255

原创 指针与数组

是完全可以对上的,我们为什么讲说数组名是第一个数组元素的地址,其实arr[n]这个语句的实现是这样,*(arr+n),arr是首元素的地址,所以也可以直接这样使用arr[2] 其实等同于,*(arr+2)// arr是首元素的地址&arr[0],那么我就可以通过指针来访问数组。这两者之间似乎并没有关系,但是我们知道数组名是数组第一个元素的地址。所以我们之前讲的数组传参是数组首元素的地址。指针变量是一个变量,存放的是地址。我们总是能拿出他们之间的一些联系。数组是一组相同类型元素的集合。

2024-03-03 16:53:39 136

原创 《指针运算》

其实这是没意义的,指针的本质是地址,地址减去地址可以推算出两个地址的距离,但是地址加地址没有实际的意义。标准规定,允许指向数组元素的指针与指向数组最后一个元素后面呢那个内存位置的比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。指针减去指针,得到的是指针与指针之间元素的个数,高指针减去低指针就是正数,低指针减去高指针指针得到的就是负数。意思是,标准指向数组的指针与最后的元素的后面那个指针比较,但是不允许与第一个元素之前的那个指针比较。指针与指针之间是可以相减的。这是使用指针实现的函数。

2024-03-03 16:52:38 288

原创 野指针与避免野指针的方法

当一个指针指向的位置是不可知的,随机的,不正确的或者没有明确限制的时候,就叫这个指针为野指针。3,暂时不知道指向谁,就赋值空指针NULL,但在下一次初始化之前不能再使用。p中存放的是函数中的局部变量的内存,在函数执行完之后销毁了,指针被释放。指针p没有初始化,没有指向。存放的是随机值0xcccccccc。为了避免使用空指针可以i。使用的指针已经被释放。

2024-03-02 10:50:08 159

原创 指针与指针类型的意义

当我们创建变量后,一个char需要一个字节,在计算机中最小的单位就是bit,一个字节是八个比特位,我们发现,如果使用bit的地址的话,一个char就需要八个地址,会造成资源浪费,所以我们使用了byte这样一个单位来表示8个bit,正好是一个字符的大小,对于32为的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电压和低电压,就是1或者0,那么32根地址线产生的地址就会是。总结:指针就是地址,是每一个内存的独立的编号,把这个编号称为指针,也就是地址,口语中说的指针通常是指指针变量。

2024-03-02 10:49:25 1591

原创 关键字 static 和关键字 register

因为全局变量是拥有外部链接属性的,一个文件要经过编译加链接生成可执行程序,现在加上static,是因为static修饰全局变量时,其外部链接属性就变为了内部链接属性,其他的源文件就无法使用了,但内部可以看见,相当于关闭了他的外部连接属性,外部无法使用,作用域变小了,是一个保护系统。大量频繁使用的变量放进寄存器中,但最终放不放进寄存器中,由编译器决定,由于现在的处理器非常聪明,有些数据即使不声明放入寄存器中,使用的太过频繁,他会自己放进寄存器中。本质上,static改变了变量的存储位置。

2023-10-26 21:00:07 28

原创 扫雷——c实现

【代码】扫雷——c实现。

2023-09-27 22:43:45 40 1

空空如也

空空如也

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

TA关注的人

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