自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++入门学习——初始化列表

为什么会先使用初始化列表初始化?因为自定义类型成员需要调用构造函数进行初始化,这个构造函数只能在初始化列表中调用,即使不写出来,编译器也会添加到初始化列表进行初始化。

2024-07-15 16:32:59 252

原创 C++入门学习——默认成员函数:构造函数

​注意:默认构造函数包括:无参的构造函数、全缺省的构造函数和我们没写编译器默认生成的构造函数。_month = 1;_day = 1;int _month;int _day;d1.Print();将标有1和2 的代码都屏蔽后,代码可以通过编译,因为编译器生成了一个无参的默认构造函数。

2024-07-15 12:25:01 394

原创 C++入门学习——内联函数inline

以的函数叫做内联函数,C++编译器会在,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。

2024-07-15 11:41:35 161

原创 C++入门学习——命名空间

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。namespace List//List是命名空间的名字,一般开发中是用项目名字做命名空间名。// 命名空间中可以定义变量/函数/类型int val;同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2024-05-30 22:34:15 317

原创 数据结构学习——排序

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。:数据元素全部放在内存中的排序。:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

2024-05-26 23:40:42 955

原创 数据结构学习——二叉树

的。

2024-05-08 22:03:16 774

原创 数据结构学习——线性表、顺序表

线性表 ( linear list ) 是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。

2024-05-08 22:01:14 496

原创 数据结构学习——链表

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。

2024-04-08 21:44:11 811

原创 数据结构面试题报错调试方法记录

此题解题思路如下:先将数据放在pushst栈里面,popst栈为空再把pushst栈里面的数据放进popst栈里面去,不为空则不执行。不为空时候直接拿取栈顶数据。

2024-04-06 15:45:01 571

原创 数据结构学习——栈和队列

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。

2024-04-06 14:03:25 797

原创 数据结构学习——链表面试题

思路:先找中间,再逆置,然后比较。哨兵位的头节点不存储有效数据。

2024-03-29 15:41:54 400

原创 C语言文件操作学习【3】—— 文件的随机读写、文件读取结束判断和文件缓冲区

ftell。

2024-02-18 20:16:42 452

原创 C语言文件操作学习【1】—— 文件操作基础知识

我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。C程序针对文件、画面、键盘等的数据输入输出操作都是同流操作的。⼀般情况下,我们要想向流里写数据,或者从流中读取数据,都是要打开流,然后操作。

2024-02-18 11:59:03 931

原创 C语言文件操作学习【2】—— 文件的顺序读写

上面说的适用于所有输入流⼀般指适用于标准输入流和其他输入流(如文件输入流);所有输出流⼀般指适用于标准输出流和其他输出流(如文件输出流)。

2024-02-18 11:55:57 405

原创 动态内存管理

当是情况2的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找⼀个合适大小的连续空间来使用。当是情况1的时候,要扩展内存就直接原有内存之后直接追加空间,原来空间的数据不发生变化。realloc函数调整原内存空间大小的基础上,还会将原来内存中的数据移动到新的空间。指向了5后面的空间,释放的时候也释放了5后面的空间,并未释放1-5的动态内存空间。函数是对堆区的动态开辟内存释放,这段代码的错误是对非动态开辟内存使用。函数是向内存申请⼀块连续可用的空间,并返回指向这块空间的指针。

2024-01-31 16:25:07 726

原创 自定义类型:联合体

像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同⼀块内存空间。所以联合体也叫:共用体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。我们看一下下面代码的结果是什么?我们调试结果为:为什么会是4呢,这里涉及到联合体的特点。

2024-01-29 19:15:28 389

原创 结构体实现位段

位段的声明和结构是类似的,有两个不同:例:位段的内存分配下面我们用一段代码来看一下在vs编译器中结构体位段是怎么存储的看完以上代码,我们思考两个问题:我们假设在VS编译器中:基于这个假设,我们画出的存储方式:变成16进制则为:0x62 03 0。然后我们进行调试观察内存变化如下:.所以在VS编译器下我们的假设是正确的位段的⼏个成员共有同⼀个字节,这样有些成员的起始位置并不是某个字节的起始位置,那么这些位置处是没有地址的。内存中每个字节分配⼀个地址,⼀个字节内部的bit位是没有地址的。

2024-01-29 15:16:09 351

原创 大小端字节序和字节序判断

当超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下⾯是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。

2024-01-29 11:53:17 324

原创 结构体的内存对齐和传参

下面我们来看一段代码,学习怎么计算结构体成员,相较于起始位置的偏移量的在结构体struct S1中,char c1是第一个成员存放在起始位置偏移量为0的地址处。char c2为1个字节,相较于8,1比较小。故char c2的对齐数为1,而偏移量1刚好为对齐数1的倍数。所以存放在起始位置偏移量为1的地址处。int a为4个字节,相较于8,4比较小。故int a的对齐数为4,而偏移量2不是为对齐数4的倍数,而偏移量4是。所以存放在起始位置偏移量为4的地址处。结构体总大小为8刚好为4的整数,所以结构体。

2024-01-28 16:01:21 1360 1

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

根据国际标准IEEE(电气和电子工程协会)754,任意⼀个⼆进制浮点数V可以表示成下面的形式:∗M ∗ 2(−1)表示符号位,当S=0,V为正数;当S=1,V为负数M 表示有效数字,M是大于等于1,小于2的2表示指数位例:把十进制5.0变成上面V的格式,那么可以写成二进制:101.0,相当于1.01×2。

2024-01-27 17:41:01 765

原创 memcpy函数与memmove函数的使用和模拟实现

第一个参数:指向要复制内容的目标数组的指针,类型转换为void类型的指针。第二个参数:指向要复制的数据源的指针,类型转换为const void类型的指针。第三个参数:要拷贝的字节数。

2024-01-25 11:36:07 385 1

原创 strtok函数和strerror函数的使用

delimiters参数指向⼀个字符串,定义了用作分隔符的字符集合第⼀个参数str指定⼀个字符串,它包含了0个或者多个由delimiters字符串中⼀个或者多个分隔符分割的标记。

2024-01-23 12:21:06 359 1

原创 strstr函数的使用和模拟实现

strstr函数的功能:strstr函数是在字符串中找到一个子字符串找到返回str2在str1中第一次出现的位置。如果str2在str1中没有出现,就返回NULL。

2024-01-23 11:09:58 623 1

原创 strcpy函数和strncpy函数的使用和模拟使用

strcpy参数类型:strncpy参数类型:从参数类型可以看出strncpy函数比strcpy函数多个参数num,其作用是从源复制的最大字符数。当想只从源复制指定字符时候可以使用。strcpy函数使用注意事项:1.源字符串中必须包含,同时也会被拷贝到目标空间2.程序员自己要保证目标空间要足够大,能放得下拷贝来的数据3.保证目标空间必须可以修改如果目标空间不够大,会发生什么调试时会报错,因为目标空间越界访问如果目标空间不可更改,会发生什么调试时会报错,因为目标空间不可更改如果数组没有包

2024-01-22 22:38:34 351

原创 strlen函数的使用和模拟实现

对于用引号引起来的一串字符叫字符串,字符串结尾隐藏'\0'。而用'a'引号引起来的是字符。

2024-01-22 20:39:58 359

原创 字符分类函数和字符转换函数

通过返回值来说明是否是小写字母,如果是小写字母就返回非0的整数,如果不是小写字母,则返回0。是用来判断参数部分的c是否是小写字母的。函数非常相似,大家可以自行修改验证。函数功能:将参数传进去的大字母转小写。函数功能:将参数传进去的小字母转大写。下面通过写一个代码,来演示。下面通过写一个代码,来演示。下面通过写一个代码,来演示。其他字符分类函数的用法跟。

2024-01-19 15:31:31 340 1

原创 C语言里的传值调用和传值调用

在函数Swap想要交换函数main里面的a,b值时候,main函数需要把实参的地址传给形参次才能实现形参修改实参值。若是传值调用并无法改变实参值a,b,因为形参会新生成一个空间(即地址)存放实参传过来数值,形参此时进行变动只是改变形参的数据,并不会影响实参的原值,因为形参只是实参的一份临时拷贝。其中主函数里面的i、j称为实参,而print函数里面的x、y称为形参,形参只是实参的一份临时拷贝。因为传值调用的时候,形参只是实参的一份临时拷贝,实参和形参是两个独立空间,在形参里面改变的值并不会影响实参。

2023-10-23 23:03:09 55

原创 在C语言中如何生成随机数

time 函数会返回当前的日历时间,其实返回的是1970年1月1日0时0分0秒到现在程序运行时间之间的差值,单位是秒。但是rand函数生成的是伪随机数,因为rand是对一个“种子”的基准值进行运算生成的随机数。程序中在调用rand函数之前先调用srand,通过srand函数的参数seed来设置rand函数生成随机数的种子,只要种子变化,每次生成的随机数也变化起来了。time函数的参数 timer 如果是非NULL的指针的话,函数也会将这个返回的差值放在timer指向的内存中带回去。

2023-08-03 15:59:23 81

原创 printf和scanf的介绍

为了防止这种情况,使用 %s 占位符时,最好指定读入字符串的最长长度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表示读取字符串的最大长度,后面的字符将被丢弃。如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面输入以个 - 号。占位符的第⼀个字符⼀律为百分号 % ,第二个字符表示占位符的类型, %d 表示这里代入的值必须是⼀个整数。它的第⼀个参数是⼀个格式字符串,里面会放置占位符(与 printf() 的占位符基本一致),告诉编译器如何解读用户的输⼊,需要提取的数据是什么类型。

2023-08-03 12:26:47 78

原创 循环语句中的while和for语句

while循环和for循环的最大区别在于for语句把初始值,判断条件,还是循环变量放在第一句便于语句修改,而while语句只能放判断条件,循环变量只能放在循环体里。此图片中分别使用while语句和for语句打印1-9数字,若打印1-9的奇数,for函数只需要改变表达式3 ,而while语句则需要找到循环变量,如图。1.在for语句里执行多条语句循环无需添加{}也能执行,但为了程序方便我们日后的阅读和修改,建议在写for循环还是加上{}更方便日后阅读和修改。3.while语句和for语句的具体使用与区别。

2023-07-26 14:14:21 168 1

空空如也

空空如也

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

TA关注的人

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