自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】string类的模拟实现

💗💗⭐个人专栏——⭐💫点击关注🤩一起学习C语言💯💫。

2024-03-17 22:13:15 980 5

原创 【C++】string类的基础操作

C++中的string类是一个用于处理字符串的标准库类。今天我们来学习在C++中string类的常见用法,比如构造、容量操作、遍历访问以及一些修改操作。

2024-03-07 20:13:04 1312 55

原创 【C++】内存管理

MyClass()// 动态分配一个包含5个int元素的数组~MyClass()// 释放之前分配的数组内存空间int main()// 动态分配一个MyClass对象的内存空间,并进行初始化// 使用动态分配的内存空间i < 5;// 释放之前分配的MyClass对象的内存空间,并调用析构函数return 0;

2024-02-20 12:13:28 1202 33

原创 【C++】友元、内部类和匿名对象

内部类是一个独立的类, 它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越 的访问权限。注意:内部类就是外部类的友元类,参见友元类的定义,内部类可以通过外部类的对象参数来访 问外部类中的所有成员。但是外部类不是内部类的友元。内部类可以分为两种类型:成员内部类和局部内部类。

2024-02-16 11:57:10 1280 25

原创 【C++】const、static关键字和构造函数初始化

将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。

2024-02-15 20:37:30 1348 37

原创 【Linux】gdb调试与make/makefile工具

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

2024-02-07 22:07:13 1487 36

原创 【C++】运算符重载详解

运算符重载函数的参数取决于要重载的运算符的操作数个数和类型。

2024-02-04 11:53:10 1288 23

原创 【Linux】 Linux编译器-gcc/g++使用

在Linux中,gcc和g++是常用的编译器,分别用于编译C和C++程序。

2024-02-02 11:54:18 1030 9

原创 【Linux】yum与vim命令详解

yum命令是Linux系统中的一个软件包管理器,用于在Red Hat、CentOS和Fedora等发行版中安装、更新和删除软件包。vim是一款在Linux系统中常用的文本编辑器。它具有功能强大、高度可定制的特点,并支持多种编辑模式和插件。

2024-02-01 12:17:54 918 8

原创 【C++】类和对象(二)——构造/析构/拷贝构造函数

💗💗⭐个人专栏——⭐💫点击关注🤩一起学习C语言💯💫。

2024-01-31 16:11:31 1009 21

原创 【C++】类和对象(一)

要定义一个类,需要使用关键字class,然后在类体内定义数据成员和成员函数。

2024-01-30 12:11:19 1152 29

原创 【C++】C++入门基础讲解(二)

在C++中,引用是一种特殊的变量,用于别名一个已经存在的对象或变量。通过引用,可以使用别名来操作原始对象,而不是创建一个新的副本。

2024-01-29 12:33:02 1632 32

原创 【C++】C++入门基础讲解(一)

命名空间的声明使用关键字namespace,后面跟上命名空间的名称,命名空间中的代码在命名空间内部,可以声明和定义类、函数、变量等。使用命名空间内的成员时,需要在前面加上命名空间的名称和作用域解析操作符::。如果不想每次都写命名空间的名称和作用域解析操作符,可以使用using关键字将命名空间中的成员引入当前作用域。

2024-01-26 21:56:55 4273 38

原创 【Linux】用户和文件权限管理

作为Linux系统的管理员账户,root拥有最高的权限。root用户对系统上的所有文件和目录都具有读、写和执行的权限。无论文件的所有者或组是什么,root都可以访问和修改它们。需要注意的是,root用户拥有强大的权限,但也要小心使用。滥用root权限可能导致系统不稳定,数据丢失或安全漏洞。因此,应该尽量避免以root身份进行常规操作,而是使用普通用户账户,并只在需要时切换到root身份。

2024-01-18 21:51:07 1566 30

原创 【C语言】数据结构——排序三(归并与计数排序)

归并排序的基本思想是将待排序的数组分成两个较小的子数组,然后递归地对这两个子数组进行排序,最后将两个有序的子数组合并成一个有序的数组。

2024-01-17 18:02:39 1432 33

原创 【Linux】——基本指令(二)

今天我们学习的指令有vim,head,tail,tree,echo,wc,|,date,cal,find,grep,zip&&unzip,tar,bc,uname -r,shutdown。

2024-01-04 20:45:20 3250 48

原创 【Linux】基本指令了解(一)

今天我们学习的指令有ls,pwd,cd,touch,mkdir,rmdir,rm,man,cp,mv,cat,more,less。Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2024-01-03 19:44:40 1260 35

原创 【C语言】数据结构——带头双链表实例探究

定义两个指针next和prev,分别指向该节点的下一个节点和前一个节点,data记录该节点存放的值。

2023-12-30 17:22:19 1420 44

原创 【C语言】数据结构——排序二(快排)

快速排序的时间复杂度为O(nlogn),其中n为待排序序列的长度。在最坏情况下,快速排序的时间复杂度为O(n^2),但通常情况下快速排序是一种高效的排序算法。快速排序是原地排序的算法,不需要额外的空间。

2023-12-29 21:34:41 1448 16

原创 【C语言】数据结构——排序(一)

今天我们来学习排序,包括直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快排以及归并排序。冒泡排序,快排和归并排序我们放在之后分析,今天主要来分析前面的。

2023-12-28 21:56:29 1285 13

原创 【C语言】数据结构——链式二叉树实例探究

链式二叉树(Linked Binary Tree)是一种基于链表实现的二叉树结构。在链式二叉树中,每个节点由三个部分组成:数据、左子节点和右子节点。

2023-12-19 20:57:06 3619 51

原创 【C语言】数据结构——小堆实例探究

堆是一种特殊的数据结构,它可以看做是一个完全二叉树(或者近似二叉树),其中每个节点的值都大于等于(或小于等于)其子节点的值。在一个最大堆中,根节点的值是最大的;在一个最小堆中,根节点的值是最小的。

2023-12-12 21:31:23 2216 58

原创 【C语言】数据结构——栈和队列实例探究

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。若struct Stack {}这样来定义结构体的话。在申请Stack 的变量时,需要这样写,struct Stack n;若用typedef,可以这样写,typedef struct Stack{}ST;。在申请变量时就可以这样写,ST n;区别就在于使用时,是否可以省去struct这个关键字。//标识栈顶的位置}ST;定义了一个链式队列的数据结构。

2023-11-21 21:23:44 1506 53

原创 【C语言】数据结构——无头单链表实例探究

单链表是一种常见的数据结构,由一系列节点依次连接形成。数据信息和指向下一个节点的指针。单链表的第一个节点称为头节点,最后一个节点没有下一个节点,其指针指向空。类似于火车,火车头连接后一个车厢,再由后面的车厢依次连接。

2023-11-07 18:54:46 1547 48

原创 【数据结构】顺序表实例探究

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。若struct SeqList {}这样来定义结构体的话。在申请SeqList 的变量时,需要这样写,struct SeqList n;若用typedef,可以这样写,typedef struct SeqList{}SL;。在申请变量时就可以这样写,SL n;区别就在于使用时,是否可以省去struct这个关键字。//给int类型起一个别名——SLDataType

2023-10-31 17:00:14 271 25

原创 【C语言】善于利用指针(三)

*p 两侧的括号不能省略,表示p先与 * 结合,是指针变量,然后再与后面的()结合,()表示是函数,即该指针变量不是指向一般的变量,而是指向函数。

2023-10-22 16:19:47 658 49

原创 【C语言】对文件的输入输出

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。

2023-10-12 18:55:54 301 48

原创 【C语言】善于利用指针(二)

数组指针:能够指向数组的指针。数组指针的定义方式与指针的定义方式类似,只不过需要在变量名字之前添加一个数组类型的修饰符。

2023-10-06 17:06:43 352 22

原创 【C语言】善于利用指针(一)

指针变量我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个变量就是指针变量

2023-10-05 16:55:58 258 20

原创 【C语言】函数的定义、传参与调用(二)

C语言的函数定义是互相平行、独立的,也就是说,在定义函数时,一个函数内不能在定义另一个函数,即不能嵌套定义,但可以嵌套调用函数。在C语言中,可以使用函数的链式访问来简化对多个函数的调用过程。所谓链式访问,就是通过函数返回值的方式,实现对多个函数的连续调用。程序调用自身的编程技巧称为递归( recursion)

2023-10-04 17:07:39 717 31

原创 【C语言】函数的定义、传参与调用(一)

当函数调用时,实参的值被复制到函数的形参中。这意味着,形参在函数的局部作用域内创建,并且在函数调用结束时被销毁。

2023-10-03 16:31:32 488 16

原创 一维数组和二维数组的使用(char类型)

字符数组arr2[] 和 arr3[] 存储的东西是相同的,也就是一组字符的集合,但是它们在内存中存储的方式不同,这也就导致了它们在使用上的一些细微差别。

2023-10-02 17:01:00 852 23

原创 一维数组和二维数组的使用(int类型)

把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。数组创建,在C99标准之前,[]中要给一个常量才可以,不能使用变量。一维数组是数组中最简单的,它的元素只需要用数组名加一个下标,就能唯一地确定。

2023-10-01 19:07:15 434 11

原创 设计一个简单的通讯录

该代码分三个模块:主函数(test_16.c)、具体功能的实现(contact.c)、以及函数的声明(contact.h)使用do...while循环以及switch来实现功能的反复使用,其中的结构体和函数声明在自身创的头文件中,再开头以及引用。在增加联系人前,需要检查通讯录的容量是否够用,这里单独分装成一个函数,来实现容量的检查以及扩展。开辟的内存使用后需要进行释放。

2023-09-30 17:29:08 205 13

原创 柔性数组详解

柔性数组也称为变长数组,是一种动态数组的实现方式。与普通数组不同的是,柔性数组在定义时不需要明确指定数组大小,在程序运行时可以动态地分配和扩展数组大小。 这种开辟的内存空间并不是紧挨着后面开的,而是随便找的一块内存空间,这就导致我们需要多次释放内存。而柔性数组是紧挨着结构体后开辟的空间,可以直接一次性的释放

2023-09-29 20:33:06 710 12

原创 C语言动态内存管理(malloc, calloc,realloc)详解

我们在把 str 传给GetMemory这个函数,并用字符指针 p 来接收,p指向的也是NULL,然后接下来往后看,malloc开辟一块内存空间,p来接收,这时p指向的是malloc开辟空间的这个地址,而不是NULL。想要扩大str的地址,只需要把str的地址传参过去,也就是&str,用二级指针 **p 来接收 str 的地址,相对的扩大的自然是str的内存空间。对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc,calloc,free,realloc这4个函数。

2023-09-28 22:01:42 643 2

原创 结构体、枚举以及联合类型在内存中的存储与大小计算

在设计结构体的时候,我们既要满足对齐,又要节省空间,就可以让占用空间小的成员尽量集中在一起。

2023-09-27 21:00:57 364 5

原创 strcpy,strcat,strstr,memcpy以及memmove的模拟实现

和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果源空间和目标空间出现重叠,就得使用memmove函数处理。

2023-09-21 21:15:56 104 5

原创 不同的数组传参在sizeof与strlen中的不同含义

1,sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节2,&数组名,这里的数组名表示整个数组,取出来的是整个数组的地址sizeof(a[3])不会越界,sizeof是根据类型计算,并不会去真正的访问--16个字节表达式的两个属性:值属性 类属性

2023-09-18 21:14:25 149 7

原创 if与switch选择结构的习题精讲

​。

2023-09-16 19:09:08 219 5

空空如也

空空如也

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

TA关注的人

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