自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++必修:类和对象(一)

• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。• C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是。

2024-09-24 00:21:20 824 4

原创 初始c++:入门基础(完结)

引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。具体表示为:类型& 引⽤别名 = 引⽤对象;C++中为了避免引⼊太多的运算符,会复⽤C语⾔的⼀些符号,⽐如前⾯的<< 和 >>,这⾥引⽤也和取地址使⽤了同⼀个符号&,⼤家注意使⽤⽅法⻆度区分就可以。// 引⽤:b和c是a的别名int& b = a;int& c = a;// 也可以给别名b取别名,d相当于还是a的别名。

2024-09-19 21:56:17 1122 2

原创 初识c++:入门基础

打字不易,留个赞再走吧~~

2024-09-13 18:44:48 884 2

原创 数据结构:堆的算法

具体实现方法为,循环把头结点和尾结点进行交换,因为头结点是一个结构最大或者最小的,这时候我们把尾部结点减少一个,在进行向下调整,然后再进行交换,把次大或次小的数据放到最后一个,尾部结点减少一个,向下调整…我们可以先建立一个大小为k的堆,然后通过后N-k个数据依次和堆的头结点进行比较,判断是否入堆,如果入堆就向下调整到合适位置,这样数据读完我们就可以销毁文件,那么空吉安复杂度则只有建立的堆,然后堆的数据即为topk.因为大堆的头结点是最大的,一开始放到尾结点,这样就是升序,反之小堆调整则为降序。

2024-09-12 00:03:21 1010

原创 关于有关字符函数汇总

在知识回顾的时候发现有许多关于字符的操作没有认识深刻,下面通过对于字符操作的函数来复习一下~~

2024-09-04 23:45:09 285

原创 数据结构初阶:实现队列的两种方法

我们学习了队列那我们用来干什么?1可以用来食堂订餐的操作,订单的进入进出就会像队列一样2在以后操作系统的学习中,队列可以用来管理任务进度与进程切换。

2024-08-10 12:42:56 369 4

原创 数据结构初阶:栈的概念和如何模拟栈?

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。有两种结构和次类似,链表和数组,但是相比较来说数组的结构更加优良,因为。如图我们先录入数据1在栈底,然后再录入2,3和新的数据最新录入的数据就是栈顶的位置。这一步严格对应了前面的LIFO(Last In First Out)先进后出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。

2024-08-06 11:35:37 308

原创 数据结构初阶必修:——时间复杂度和空间复杂度

空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。通过上面我们会发现大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。1.时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法。例如上面的数组就是就是提前申请的空间。

2024-08-05 00:19:25 697

原创 深入了解指针(完结)

int (*pf) (int ,int ) 然后我们写一个void cal(int (*pf) (int ,int ))函数来接收其他函数的指针,这样就能实现代码复用的效果。这还是简单的计算器,写一个主函数,然后调用其他函数来实现功能,但是这样每次case后写的代码有好多都是重复的,我们可以再写一个函数来实现去除代码冗余的效果。cal就是b函数,写的众多的其他函数都是a函数。时,被调⽤的函数就是回调函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数。

2024-05-23 20:14:52 282 1

原创 深入了解指针(三)

因为“hello bit”在内存中是单独的⼀个内存区域,是常量字符串,几个指针同时指向常量的时候,是同一块区域,但初始几个不同的数组就会有不同的内存块被开辟。(arr+0)+2)的意思是arr跳过0*[5]个字节的数组指针变量,再从头开始的第2+1个元素(因为是从0开始的)。这里arr的大小是5个整型也就是20个字节,所以arr+1就是跳过 20个字节后的数组指针变量。不同于以前的指针数组,数组指针变量是一个指向数组的指针,它的写法和指针数组类似。这就是⼆维数组传参的本质。这段代码的答案是3,

2024-05-19 16:44:15 338 1

原创 深入了解指针(二)

如果实参传过去的是整个数组,那么sizeof(arr)就是40个字节,如果是数组首元素的地址就是一个指针的变量。1.sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩,2.&数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素。上述的代码模拟出⼆维数组的效果,实际上并⾮完全是⼆维数组,因为每⼀⾏并⾮是连续的。我们类⽐⼀下,整型数组,是存放整型的数组,字符数组是存放字符的数组。指针数组的每个元素都是⽤来存放地址(指针)的。

2024-05-16 21:11:37 294 2

原创 深入了解指针(一)

CPU访问内存中的某个字节空间,必须知道这个字节空间在内存的什么位置,⽽因为内存中字节很多,所以需要给内存进⾏编址(就如同宿舍很多,需要给宿舍编号⼀样)。我们可以简单理解,32位机器有32根地址总线,每根线只有两态,表⽰0,1【电脉冲有⽆】,那⼀根线,就能表⽰2种含义,2根线就能表⽰4种含义,依次类推。址线,就能表⽰2^32种含义,每⼀种含义都代表⼀个地址。地址信息被下达给内存,在内存上,可以找到该地址对应的数据,将数据在通过数据总线传⼊CPU内寄存器。先了解内存中最小的单位——————byte-字节。

2024-05-14 22:53:58 348 4

原创 深入指针练习:函数指针数组和回调函数来优化实现计算器功能

这样我们下次添加功能时就直接定义一个函数,不要像函数指针数组中一样有严格的下标关系,因为它是回调到calc函数中通过指针访问数组名实现计算功能的。我们以前用过swich结构来实现过简单计算器但是代码过于冗余,第一种方法是用函数指针数组来存放函数,然后套用do-while循环来实现功能。时,被调⽤的函数就是回调函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数。我们通过函数指针数组来实现功能,把要写的函数都存到数组中,然后通过访问地址来实现功能。

2024-04-14 23:14:37 271 7

原创 简单算法;冒泡排序和用指针交叉互换

其中void Sort(int arr[],int sz)中的int arr[]可以写成int* arr因为二者都是数组名首地址。这里void Sort(int* p, int sz)如第一个一样也可以换成arr[],当然下面也要p[]也要换成arr[].这是一个模板我们也可以加入一些复杂的判断来进行程序。来写一点简单的算法复习c语言。

2024-04-13 18:37:41 227 4

原创 C语言中运算符“^”,“&”,“|”简介

左右二进制序列全为1为true,其余情况为fase。左右二进制序列有1则为true,全0则为fase。左右二进制序列相同为true 不同为fase。true返回0 fase返回1。true返回1,fase返回0。true返回1,fase返回0。

2024-03-24 17:46:29 210 2

原创 扫雷(超详解+全部码源)

如果有雷‘1’-‘0’=1所以八个位置雷个数就是M[x - 1][y] + M[x + 1][y] + M[x - 1][y + 1] + M[x + 1][y + 1] + M[x - 1][y - 1] +我们要再写一个int get()函数来统计所选位置周围8个方位的雷的个数返回值是int。因为为了防⽌越界,我们在设计的时候,给数组扩⼤⼀圈,雷还是布置在中间的9*9的坐。我们这次写的游戏要用两个棋盘实现,用到了分布的思想。◦ 把除10个雷之外的所有⾮雷都找出来,排雷成功,游戏结束。

2024-02-03 11:52:44 664 8

原创 函数递归和简单的例子(c语言)

其实递归程序会不断的展开,在展开的过程中,我们很容易就能发现,在递归的过程中会有重复计算,⽽且递归层次越深冗余计算就会越多。和while等循环相似我们实现让递归停下的条件就是写一个限制条件,达到条件递归自动停止。我们看到这个递归是每次都调用自己的main()函数没有限制条件所以一直打印hehe.我们在输入一个非1的整数值那么程序就会一直递归,直到到1为止。递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?在这里停止的条件就是n=1时。

2024-02-01 20:41:59 383 7

原创 猜数字游戏的实现及其几种玩法(c语言版)

这个代码用了do-while循环和swich循环选择1就是进行游戏,0是退出,选择其他数字就是重新选择。并且可以写两个函数。一个打印菜单函数menu(),一个游戏实现函数game().这个代码只有猜中了才会break跳出循环所以可以一直猜。这时候想要统计猜的次数只要int m=0,在每次循环时m++就行了。们写了一个主函数两个非主函数一个game();另一个时menu(),在主函数中调用两个函数,最终实现简单游戏。我们猜了两次就对了很幸运,所以显示两次。

2024-01-31 18:19:50 448 1

原创 操作符全解(超详细,新手必看)

我们看到在第6行中我们用复合赋值(要从右往左看),我们是先对a进行自增1然后把它赋值给b,所以此时a与b的值都是6。我们计算机中用到的计算都是用的算术操作符,因为这种操作符两边都有操作数,所以也叫双目操作符。这是一个特殊操作符,操作符两边没有操作数而是变量和语句。如a=6,b=8之类的,就是把6和8分别赋值给a和b但我们一般叫这个过程初始化。我们在学习敲代码就会涉及到一些计算,所以就会操作符,下面我们来讲解一下操作符的一些基础概念。我们只会在特定的语句中才会把前置++和后置++分的清楚,如复合赋值的时候。

2023-12-18 21:30:27 435

原创 while,do-while和for循环的介绍和比较

这个循环与while循环特别像,但是区别在于这个循环是先do(运行),再while(循环)。所以无论循环语句条件是否满足,这个循环至少运行一次,就是先do再while。同时我们因为比较简单我们可以发现while()的致命缺点,如果不在后面加上自变量的变化很容易造成死循环。3for循环和while循环的区别是for循环更完整,不易造成死循环。这个循环可以完成特定的功能,也就是至少要循环一次的功能。这个循环比较简单,while()里只需要填循环条件就行。小张的总结课堂:1这三个循环都可以实现循环语句的运行。

2023-12-05 00:24:25 62

原创 关于如何用rand(),srand()和time()函数创建简单的随机数

关于简单随机数如何生成,和srand(),rand(),tinme()函数如何运用。

2023-12-03 23:22:11 103

原创 一篇自我介绍——梦想的开始

C我会利用时间通过学校的课程和网上的网课还有信息进行系统性的学习,并规划自己的学习时间和休闲时间,然后来进行计算机语言的学习。A我是一名软件工程专业的学生,我对这个专业暂时的看法就是当码农,算不上多了解,希望以后通过学习更加了解。B我的编程目标最后是找到一个心慢意足的工作。毕业时候看就业情况吧,如果找不到合适工作就考研。D因为我是计算机专业的学生,我认为每周应该学习不低于20个小时精进自己的技术。E最后我最想进入的企业是科大讯飞,网易。任重还道远,,,,,,,

2023-11-22 19:32:52 42

空空如也

空空如也

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

TA关注的人

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