自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言贪吃蛇项目

Windows除了协调各应用的运行、分配内存、管理资源以外,它同时还是一个很大的服务中心,可以帮程序许多“忙”,这些函数简称为API函数,WIN32API也就是MicrosoftWindows。对于食物,就是在墙体内随机生成一个坐标(x坐标必须为2的倍数,防止卡墙),并且其坐标不能与蛇的身体重合,然后打印⭐。蛇的每个节点的x坐标都应该是2的倍数,否则可能会出现蛇的节点有一半在墙内,一半在墙外,坐标不好对齐。对蛇的初始化:假设其长度为5,蛇身的节点为⚪,在固定的坐标处出现连续的5个节点。

2024-04-30 18:40:51 975 4

原创 单链表的介绍

如果我们只传递指向当前节点的指针,那么在函数内部修改指针的值只会传值调用,而不会影响调用者传递给函数的原始指针。其中,数据域用于存储元素的值,指针域用于指向下一个节点。遍历链表,next接收pcur的下一个节点,之后释放pcur后,将保存的next再赋给pcur,简而言之,创建一个第三方节点保存数据,让后遍历释放。顺序表的实现需要初始化并申请一块内存,而链表却不需要,这是因为链表存储的空间并不是连续的。创建新节点pcur ,遍历,如果当前节点符合,返回,否则继续,若最后未找到,返回NULL。

2024-04-21 20:43:19 334 1

原创 c语言顺序表的简单介绍

若不充足,判断空间是否为0,为0,赋予其4字节大小,否则给予其原储存量的2倍,用新的变量存储新的空间。利用realloc进行扩容,扩容是有可能失败的,故可创建一个临时指针数组变量进行存储。确保传入的指针ps 以及现存数据size 不为空(否则无意义),让后直接删改操作。将pos之后的数据往前移动一位,实现对pos的覆盖,size-1;将pos之后的数据全部往后移动一位,将pos的位置给x。

2024-04-15 20:49:23 277 1

原创 fseek 和 ftell 的工作原理

fseek的第二个参数是偏移量(offset) 该参数表示从起始点开始要移动的距离,该参数必须是long类型的值。fseek(fp,10L,SEEK_SET)//定位至文件中的第10个字节处。fseek(fp,-10L,SEEK_END)//从文件结尾处回退10个字节。//定位至文件起始位置。fseek的第一个参数是FILE*指针,指向待查找的文件。返回的是参数指向文件的当前位置距离初始位置的字节数。若一切正常,fseek返回0,否则返回-1。

2024-04-05 18:05:27 315

原创 getc(),putc(),getchar(),putchar()之间的区别

实际上,putc(ch,stdout) 和 putchar(ch)效果是一样的。//在处理器上输入字符。//将ch放入FILE指针fp所指向的文件中。2.//从fp指定的文件中获取以一个字符。3.//从标准输出中输出一个字符。

2024-04-05 16:38:07 367

原创 结构体类型,结构体变量的创建和初始化 以及结构中存在的内存对齐

最后一个char占一个字节,在地址8上,此时结构体总大小应为成员中最大对齐数大的整数倍,最大对齐数为4,此时占9个字节,不满足,跳过4个字节,到达第12个字节处满足4的整数倍。对于第二个类型int,它要对齐在它的对齐数整数倍的位置上,跳过3个字节,从4开始,向下数4个地址,刚好8个字节,是4的整数倍。3.结构体总⼤⼩为最⼤对⻬数(结构体中每个成员变量都有⼀个对⻬数,所有对⻬数中最⼤的)的。4.如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最⼤对⻬数的整数倍处,结构。

2024-03-30 16:48:14 323

原创 c++深拷贝和浅拷贝的区别

浅拷贝:在用户没有自创拷贝构造函数时,c++编译器会自己提供一个,进行简单的赋值操作。在有参构造函数中 在堆区创建一个整形height并用m_height指针来接收。但在堆区开辟空间使用完之后,要在构析函数中手动释放,此时我们便可改动构析函数。在有创建两个变量 指针m_height和 整形常量 m_age。深拷贝:在堆区重新申请空间,进行拷贝操作。此时程序在main函数中成功执行。但此时会发生运行错误,

2024-03-30 00:14:44 142

原创 浮点数在内存中存储

IEEE754规定,在计算机内部保存M时,默认这个数的第⼀位总是1,因此可以被舍去,只保存后⾯的xxxxxx部分。⽐如保存1.01的时候,只保存01,等到读取的时候,再把第⼀位的1加上去。对于64位的浮点数(double),最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效数字M。对于32位的浮点数(float),最⾼的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。101.1 -------->可转化为:(-1)^0 * 1.001 * 2^2。

2024-03-29 20:42:19 210

原创 关于内存函数的介绍

但是在重叠内存块这方面,memmove() 是比 memcpy() 更安全的方法。如果目标区域和源区域有重叠的话,memmove() 能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,复制后源区域的内容会被更改。如果目标区域与源区域没有重叠,则和 memcpy() 函数功能相同。函数作用:在 str2 复制 n 个字节到 str1。str 2 指向要复制的数据源。n : 要被复制的字节数。其中,str1用于指向存储复制内容的目标数组。从 str2 复制 n 个字符到 str1。

2024-03-27 15:56:30 444

原创 通讯录管理系统的实现

【代码】通讯录管理系统的实现。

2024-03-23 15:42:21 312

原创 左旋字符串功能的实现

方法一: 每左旋一次,左旋字母移动至最后,其余元素都往前进一位。在str2的后面拼接n个str的元素l;将arr1中的数据拷贝到arr中。在str2的后面拼接str;实现一个函数,可以左旋字符串中的k个字符。#1ABCD左旋一个字符得到BCDA。#2ABCD左旋两个字符得到CDAB。

2024-03-22 18:13:25 616 1

原创 利用c++编写猜数字游戏

需要timec时间头文件的包含。

2024-03-20 16:19:04 161

原创 借用qsort函数排序及模拟qsort函数的实现

3.模拟qsort函数排序整形及其结构体。2.借用qsort函数排序并打印结构体。1.借用qsort排序整形并打印。

2024-03-18 17:45:43 309

原创 结构体成员访问操作符

间接访问应用于指向结构体变量的指针:如下。

2024-03-18 17:39:32 357

原创 java入门:helloworld小案例

2.下载安装好jdk后,win+r输入cmd打开控制台,输入代码所在路径。1.先在记事本中输入代码:并修改文件后缀名为java。3.输入javac 文件名,进行编译文件。4.输入java 文件名,运行java文件。

2024-03-18 17:30:10 343

原创 java基础-----

制表符:会自动把前面的字符串长度补齐到8个或8的整数倍,最多补8个空格。

2024-03-18 15:44:42 338

原创 java基础之关键字

2024-03-18 15:03:48 328

原创 回调函数的介绍

calc函数,通过函数指针pf调用对应的函数,此即为调用函数。

2024-03-15 17:09:35 348

原创 常用cmd命令

cd 目录一\目录二\... :进入多级目录。符盘名称+冒号:切换到对应的磁盘。cd.. : 回退到上一目录。exit: 退出命令提示符窗口。dir:查看当前路径下的内容。cd\ :退回到盘符目录。cd目录:进入单级目录。

2024-03-15 13:19:43 338

原创 c#基础知识02

/ 如:console.WriteLine();是方法(动词的功能)

2024-03-08 21:38:01 524

原创 c#基础知识01

/输入,将用户在控制台输入的文本读取到程序中来。//输出,将括号中的文本写到控制台上。

2024-03-08 21:19:18 383

原创 数据结构的基本概念

组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。(如:动物里有:鸡,狗,猪等动物即为动物里的数据元素)数据对象:性质相同的数据元素的集合。(包括整形、实型以及图像视频等非数值类型)(如:人可以有眼睛鼻子耳朵等数据项)一个数据元素可以由若干个数据项组成。数据项是不可分割的最小单位。

2024-03-08 20:28:25 354

原创 野指针的相关介绍

2.指针越界访问(10个元素,但越界访问了第11个)3.指针指向的空间释放(

2024-03-08 20:03:39 341

原创 指针的运算

指针的运算有以下三种:1.指针+-整数2.指针-指针3.指针的关系运算。

2024-03-08 19:45:50 367 1

原创 const修饰指针变量

2024-03-08 19:13:38 372 1

原创 void*指针

这个指针可以理解为无具体类型的指针(亦为泛类型指针)这种类型的指针可以⽤来接受任意类型地址。但是也有局限性, void* 类型的指针不能直接进。⾏指针的+-整数和解引⽤的运算。

2024-03-07 21:50:18 353 1

原创 指针变量的大小及其意义

如图,第一张图中的指针会将n的4个字节全部改为0,而第二张图的指针只改变n的一个字节为0(类型不同)结论:指针变量的大小和类型是无关的,只要指针类型的变量,在相同的平台下,大小都是相同的。如:char*的指针可以解引用1个字节,而int*指针可以解引用4个字节。结论:指针的类型决定了对指针解引用有多大的权限(一次能操作几个字节)32位平台下地址是32个bit位,指针变量大小为4个字节。64位平台下地址是64个bit位,指针变量大小为8个字节。

2024-03-07 21:44:19 404 1

原创 qsort函数的介绍

size_t num //是base指向的待排序数组的元素个数。void* base , //指针,指向的是待排序数组的第一个元素。size_t size //base指向的待排序数组的元素大小。qsort C语言库自带的排序函数,可以进行冒泡排序等排序算法。当返回值<0时,p1<p2;当返回值=0时,p1=p2;当返回值>0时,p1>p2;

2024-03-06 21:36:25 364 1

原创 二级指针的介绍

pp为二级指针变量, int*指的是pp所指向的对象为一级指针,*pp指其存放了一级指针的地址。int *p=&a,*p代表p为一个指针,储存a的地址,int代表p所指向的对象a为整形,p为一级指针变量。

2024-03-02 21:20:18 322

原创 冒泡排序的实现

1.一共有10个数字(元素),每个数字都要进行交换顺序重新排列一边,最小的一个数字除外(已经排好)。2.在第一趟冒泡排序中,数字9一共要和其余数字进行9次交换,第二趟排序中,数字8要进行8此交换,3.在每趟排序中,相邻两个数字进行比较,以升序为例,大的数字放后面,小的数字放前面,此时。

2024-03-02 21:03:01 382

原创 指针+-整数

如上,char类型的指针变量+1跳过一个字节,而int类型的指针变量+1跳过4个字节。不同类型的指针变量加减一所跳过的字节不同。

2024-03-01 16:11:10 351 1

原创 递归实现一个数的每一位之和

可以先取其余数,再除以10.以此为递归条件。

2024-02-29 18:04:06 286

原创 递归实现n的k次方

先看第三种,k=0时,n的k次方为0;此时return 0。k小于0时,相当于n的-k次方如下图。当k>0时,k个n相乘。

2024-02-29 17:40:35 330 1

原创 C语言实现斐波那契

斐波那契数列指的是这样一个数列:

2024-02-28 16:34:43 338 1

原创 单身狗:1 2 3 4 5 1 2 3 4 中打印只出现一次的数字

此题目涉及按位异或^运算 符,有几个性质需要记住: ex: 1.a^a=0;通过for循环遍历整个数组:求得答案。

2024-02-27 21:01:27 282

原创 C语言笔记 函数的声明与定义

第一次打印五个3,因为每次运行时,a出了所在的作用域,其内存空间将会销毁,不再保留,而第二个则打印3 4 5 6 7这是因为 局部变量一般申请空间在栈区,用static修饰后内存保留在静态区,和全局变量相似,直至程序结束后变量才销毁,每次运行a所占空间不会销毁,打印成34567。1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。2.全局变量的生命周期:整个程序的生命周期。生命周期:变量的创建(申请内存)到变量的销毁(回收内存)之间的一个时间段。extern:声明外部符号。

2024-02-14 17:23:53 467 1

原创 多文件中函数的实现

2024-02-12 21:30:29 315 1

原创 形参和实参的区别

形参:在定义函数时,函数名后面的所提供的,如102行的x,y,若仅仅定义函数而不去调用参数时,x,y仅仅是形式上存在的,不会向内存申请空间,称为形式参数。形参和实参的关系:两者为相互独立的空间。(如第二幅图两者存储位置不一样)实参:调用函数时,所传递给函数的参数,如113行的a和b,即为实参。

2024-02-12 17:41:56 479 1

原创 自动打印简单C语言函数

利用两个数组间的交换来完成。

2024-01-25 13:43:03 342 1

原创 分支与循环笔记

每次运⾏程序产⽣的随机数序列是⼀样的,那是因为rand函数⽣成随机数的默认种⼦是1。rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的⼤⼩是 依赖编译器上实现的,但是⼤部分编译器上是32767。//余数的范围是0~99。如果要⽣成100~200的随机数,⽅法如下: 100 + rand()%(200-100+1)如果要⽣成1~100之间的随机数,⽅法如下: 1 rand()%100+1;//%100的余数是0~99,0~99的数字+1,范围是1~100。

2024-01-24 19:31:36 365

空空如也

空空如也

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

TA关注的人

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