自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++初阶入门基础二——类和对象(中)

默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,我们稍微了解一下即可。其次就是C++11以后还会增加两个默认成员函数,移动构造和移动赋值,这个我们后面再讲解。

2025-03-25 20:31:27 726 6

原创 C++初阶入门基础二——类和对象(上)

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

2025-03-22 14:41:35 926 3

原创 C++初阶入门基础一

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对小即可,中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找一个变量/函数]类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响编译查找逻辑,还会影响变量的生命周期,命名空间域和类域不影响变量生命周期。

2025-03-22 09:55:48 877

原创 数据结构—C语言实现栈和队列

栈:一种特殊的线性结构,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的元素数据遵守后进先出的原则。注意点:若队列中只有一个结点,进行头删后,队列为空,为避免尾结点成为野指针,因此要分类讨论。只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出。先创建新结点,储存数据,若队列为空,则头结点和尾结点同时指向新结点;否则,进行将新结点插到尾结点后面,则新结点为新的尾结点。出栈:栈的删除操作叫做出栈,出数据也在栈顶。

2024-07-27 19:14:53 589 7

原创 数据结构—C语言对单链表的实现

如果大于一个结点,找到尾结点ptail和尾结点的前一个结点prev,将prev的next置为NULL,将ptail结点free,再置为NULL。思路:先将pos的next结点用del记录下来,再将pos的next指向next的next,实现删除,再对del进行销毁,再置为NULL。否则,找到pos的前一个结点,将前一个结点的next指向pos的next,销毁pos,在置为NULL。思路:比较简单,创建新结点,将新结点的next指向pos的next,再将pos的next指向新结点。单链表的逻辑结构是线性的;

2024-07-26 20:29:01 884 5

原创 顺序表的动态实现

插入元素前,先检查顺序表是否还有空间,如果空间不够,则创建新空间。因为后续会经常用我们见检查顺序表的函数封装起来。顺序表的底层逻辑就是数组,静态顺序表空间给小了不够用,给大了,容易浪费空间,因此可以动态实现顺序表。包括动态创建数组时需要一个指向数组的指针,一个变量来表示数组的最大容量,一个变量用来表示目前的大小。方便后续写代码的便利。seqlist.c seqlist.h用来实现顺序表。完成顺序表的结构后,完成对顺序表的初始化。在使用完后,要进行顺序表的销毁。物理结构:不一定是线性的。

2024-07-16 17:26:36 449 7

原创 数据在内存中的储存

其实超过一个字节的数据在内存中储存的时候,就有储存顺序的问题,按照不同的储存顺序,我们分为大端字节序储存和小段字节序储存,下面是具体的概念:大端(储存)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(储存)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。上述概念需要记住,方便分辨大小端。

2024-06-25 17:41:56 1885 1

原创 C语言内存函数

memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容,如果源空间和目标空间出现重叠,就得使用memmove函数处理。如果aaa和bbb有任何的重叠,复制的结果都是未定义的。

2024-06-02 17:34:40 283

原创 字符函数和字符串函数

C语言中有一系列函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。这些函数的使用都需要包含一个头文件ctype.h这些函数的使用方法非常类似,我们就讲解一个函数,其他的类似islower是判断参数部分的c是否是小写字母的。通过返回值来说明是否是小写字母,如果是小写字母就返回非0的整数,如果不是小写字母,则返回0.练习:写一个代码,将字符串中小写字母转大写,其他字符不变。

2024-06-01 13:14:17 398

原创 初识指针3

所以函数形参的部分理论上应该使用指针变量来接受首元素的地址.那么在函数内部我们写sizeof(arr)计算的是一个地址的大小(单位字节)而不是数组的大小(单位字节).正是因为函数的参数部分的本质是指针,所以在函数内部是没办法求数组的元素个数的.可以看到&data[0]和&data[0]+1相差4个字节,data和data+1相差4个字节,&data[0]和data都是数组的首元素地址,+1就是跳过4个字节.数组我们学过了,之前也讲过了,数组是可以传给函数的,那我们来讨论一下数组传参的本质.

2024-05-30 17:41:34 1465

原创 初识指针2

因为在数组中是连续存放的,只要知道第一个元素的地址,顺藤摸瓜就知道所有的元素。可以通过指针来实现数组的访问。代码如下:这就是通过指针的方式来打印数组。

2024-05-13 12:58:40 354

原创 初识指针1

在此之前,我们先来介绍一下内存和地址的关系,我们将内存分成一块一块,最小的内存单位是字节,而一个字节是8个比特位,一个比特位可以储存一个二进制位。而每一个字节都有一个编号。我们可以通过地址去找到每一个字节所在的位置。

2024-05-12 23:17:50 499

原创 C语言进行扫雷游戏的详细思路和实现

这是我们常见的扫雷游戏的画面,这里我们准备一个9*9的棋盘,我们假设用1和0来充满整个棋盘,用1来表示雷,0表示不是雷。当我们揭开一个格子后,得到1个数字来显示周围8个格子的雷的数量。但这样会出现问题,比如我们这里揭开最中间的数字,周围8个格子的雷的数量是1,数字就会从0变成1,显示给玩家,但是这个数字1到底表示是雷,还是周围8个格子雷的数量。就会产生冲突。这里我们的解决办法是直接准备两个棋盘,一个装满0或1来表示不是雷或是雷。另一个棋盘用来展示给玩家。

2024-04-29 11:01:41 1975 1

原创 C语言的循环语句

首先执行表达式1初始化循环变量;接下来就是执行表达式2的判断部分,若表达式为真执行语句,若为假,则跳出循环;while和for两种循环都是先判断条件,条件满足就进入循环,不满足就跳出循环,而do......while循环则是先执行循环语句,在执行while后面的判断表达式,若为真则继续循环,为假则跳出循环。do......while循环上来先执行一次语句,在进行表达式的判断,若为真,则继续进行循环,若为假则跳出循环,在执行完第二次循环后·,再根据表达式的判断是否执行下一次循环还是跳出循环。

2024-04-14 13:04:20 446

原创 C语言的分支语句

break一般出现在case和default语句的后面,当执行完case语句后,若想跳出语句,则在case语句后加上break,则会在执行完语句后跳出switch语句。一个整数不是奇数就是整数,当我们需要判断一个整数是奇数还是偶数时就需要“if.........else”语句了。if语句后默认只控制1条,如果想控制多条语句,则用{}将多条语句括起来。如果不在case语句中加入break,则可能出现执行多条语句的结果。当表达式无法在case中找到时,则执行default后的语句。case 值1:语句1;

2024-04-13 22:50:27 286

原创 我的第一篇博客

我希望能在未来三个月的时间内掌握C语言的基本知识,并且开始学习数据结构,我会在每周都给14个小时以上的学习编程的时间,并且学习408的4门课来参加今年的25考研。我的学习方法是先看一遍网课,虽然书上的知识点已经很齐全,但还是要把网课上讲的内容知识点自己整理写在笔记本上,再通过书教材去复习并完成教材后习题,习题我一般通常都会反复做,书上的算法,我会自己多写理解几遍,并在电脑上进行验证实际上手操作。

2024-03-29 21:26:53 244

空空如也

空空如也

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

TA关注的人

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