自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构中的抽象数据类型和C语言中的数据类型的关联

C 语言中的数据类型:C 语言提供了丰富的预定义基本数据类型,如int表示整型、float表示单精度浮点型、char表示字符型等,这些数据类型定义了数据的存储方式和可进行的操作。程序员可以直接使用这些数据类型来定义变量,用于存储和处理各种数据。抽象数据类型ADT是从具体的数据表示和操作细节中抽象出来的,它更侧重于数据的逻辑结构以及在逻辑结构上定义的一组操作,而不关心数据在计算机中的具体存储方式和操作的具体实现细节。例如,栈(Stack)、队列(Queue)等都是常见的ADT。

2025-05-22 20:09:56 266

原创 数据结构知识点汇总

2、对于链式存储的理解:可以把每个节点理解为仅存储两个元素的数组,第一个元素是这个节点存储的数据,第二个节点存储的是下一个节点的数组名,也就是下一个节点的首地址(假设这个数组可以存储不同的数据类型)。1、在数据结构中,随机访问是指能够直接访问任一元素,而不需要从特定的起始位置开始,也不需要按顺序访问其他元素。这种访问方式通常不涉及遍历。)支持随机访问,你可以直接通过索引访问任意元素,而无需从第一个元素开始一步步遍历。

2025-05-22 13:17:41 365

原创 C++语法中的引用及其原理

引用是一个已存在的变量的别名(或称为“引用名”)。在 C++ 中,一旦定义了一个引用,它就与被引用的变量紧密绑定,对引用的操作实际上就是对被引用变量的操作。Type是数据类型,例如intfloat等。表示这是一个引用。是引用的名称。是已经声明的变量。int a = 10;// ref 是 a 的引用引用是 C++ 中一个非常重要的特性,它通过为变量提供一个别名,避免了不必要的拷贝操作,同时提供了与普通变量类似的使用方式。

2025-05-18 21:10:11 712

原创 结构体对齐三大法则

1、自然对齐规则:结构体的成员将按照自然对齐原则来排列。自然对齐要求每个成员的地址是其数据类型大小的整数倍。例如,一个 int类型的成员通常会被对齐到4字节边界(整除4),而一个 double 类型的成员通常会被对齐到8字节边界。2、填充字节:如果一个成员的大小不是对齐边界的整数倍编译器通常会在其后添加一些填充字节,以确保下一个成员能够正确对齐。填充字节的大小取决于编译器和目标平台,通常是1字节或更多。3、结构体的总大小:结构体的总大小通常等于其最大成员的大小的整数倍。

2025-05-18 19:57:47 607

原创 计算机单个进程内存布局的基本结构

这张图片展示了一个计算机内存布局的基本结构,从低地址。依次分布着不同的内存区域。

2025-05-18 18:58:34 202

原创 C语言中字符串函数的详细讲解

C语言提供了丰富的字符串处理函数,这些函数在<string.h>头文件中声明。

2025-05-17 19:16:41 808

原创 C语言查漏补缺

因为字符串中有6个字符,即末尾还有个结束符,但是数组容量为5,所以仅接纳5个字符,末尾的结束符不会被接纳,故而这样的字符数组在直接输出时可能会发生乱码,因为没有结束符。1、数组初始化时,例如。

2025-05-17 18:32:03 256

原创 数组名既可作为指针也可作为变量名

数组名可以作为指向首个元素的指针,是因为C语言的设计使得数组名在大多数上下文中会被自动解释为指向其第一个元素的指针。这种设计的目的是为了方便数组的操作,特别是通过指针来访问数组元素。而数组名可以代表整个数组,主要是因为存在像sizeof操作符这样需要对整个数组进行操作的场景,以及在数组初始化、作为函数参数(从声明形式上看)等场景中,需要明确数组的整体概念。正是C语言的语法和语义设计使得数组名在不同场景下有这两种不同的表现。

2025-05-17 17:37:06 927

原创 逻辑运算符的优先级以及短路运算

不同的编程语言可能会有细微的差别,但大多数遵循这样的优先级规则。这种优先级顺序类似于算术运算符中的乘除优先于加减,它帮助我们确定逻辑表达式中各个运算的执行顺序。

2025-05-15 14:42:56 347

原创 sizeof()运算符

在C语言中,sizeof是一个非常重要的运算符,用于计算类型的大小,返回值为该类型所占用的字节数。以下是对sizeof。

2025-05-15 14:22:24 248

原创 浮点数格式控制输出

指定输出浮点数的总长度为 8,包括小数点和可能的负号(如果有)。但实际输出时,如果数值本身的长度(包括小数部分)超过指定的总长度,系统会根据需要自动调整显示,可能不会严格限制在 8 个字符以内。这是因为 C 语言中格式说明符的总长度控制主要是用于对齐和预留显示空间,而不会截断数值本身的内容。代表总长度(包括小数点、可能的负号等),小数位数则根据数值自动确定。在 C 语言中,若仅控制浮点数的总长度而不控制保留小数位,可以通过。这种方法非常适合在不需要固定总宽度,但需要固定小数位数的场景中使用。

2025-05-15 14:06:28 169

原创 占位符读取标准输入缓冲区规则

格式化字符串中的空白字符会导致scanf跳过输入中的任意数量的空白字符。这种行为允许在格式化字符串中灵活处理输入中的空白字符,而不会影响数据的读取。但在某些情况下,可能会导致意外行为,例如在需要精确匹配输入格式时,需特别注意空白字符的处理。其实就是格式化字符串中的空白字符具有跳过标准输入缓冲区中空白字符的功能,就像%s、%d、%f跳过为首的空白字符群一样的的功能,所以这种格式化字符串里的空白字符一般都是和%c配合使用,也就是赋予%c跳过为首的空白字符群的能力。

2025-05-14 22:26:05 421

原创 python中五大容器的切片操作

列表切片元组切片字符串切片。

2025-03-06 09:52:06 309

原创 python中五大容器的公共方法

在 Python 中,五大容器(列表、元组、字典、集合、字符串)有一些公共的方法和操作,这些方法可以在不同类型的容器上使用。

2025-03-06 09:50:19 156

原创 python中索引的顺序与逆序

顺序索引从 0 开始,依次递增。逆序索引从 -1 开始,依次递减。切片操作可以用于访问序列的一部分,支持正向和逆向索引。索引超出范围会抛出异常,而切片操作不会。通过这些方法,可以在 Python 中灵活地访问和操作序列中的元素。

2025-03-06 09:47:13 328

原创 python五大容器的相互类型转换

在 Python 中,五大容器通常指的是列表(list)、元组(tuple)、字典(dict)、集合(set)和字符串(str这些容器之间可以通过内置函数或特定的方法实现相互类型转换。

2025-03-06 09:39:56 434

原创 高数-第二讲-数列极限

1、数列有无穷多项,数列的子列也有无穷多项,其实子列就是原数列中离散的点集的再分,所以它们的变化趋势都是一样的,所以数列若收敛,那么它的所有的子列全都收敛且收敛到同一个A。2、数列收敛,则其所有的子列必定收敛,且收敛于同一个A;子列收敛,数列不一定收敛,因为只有当一个数列的所有子列全都收敛于同一个An→∞lim​an​a⇔k→∞lim​a3k​a,且k→∞lim​a3k1​a,且k→∞lim​a3k2​a。

2024-05-17 22:15:54 4101

原创 408学习笔记-数据结构-2-线性表

2、线性表是一种逻辑结构,属于总线性结构——,而不考虑元素究竟表示什么内容。除了表头元素,每个元素都有一个。除了表尾元素,每个元素都有一个。(6)线性表中的第一个元素叫。,每个元素都是单个元素。3、线性表定义:具有。

2024-05-15 20:38:29 250

原创 高数-第一讲-函数极限

的意思就是指:无论是x→n,还是fx→n,箭头→都是表示一个趋近的过程,也就是说它是运动的,且越来越靠近但永远无法到达,这样的一个行为就叫做,而n就是所贴近的目标。x→0lim​fxA以上式子用贴近法来理解就是:当函数fx的自变量x贴近于0时,函数fx就贴近于A(当x→0时,fx→A。

2024-04-25 17:14:29 3905

原创 408学习笔记-18-C-顺序表插入、删除、查询操作实战

C语言中对变量与函数有两种命名规则:1、无论函数名还是变量名,每个单词都是全小写,且单词之间用下划线。2、函数名命名用,即:每个单词首字母大写,其余小写,且单词之间直接相连。变量名命名用,即:除了首个单词,每个单词首字母大写,其余小写,且单词之间直接相连。

2024-03-25 18:14:13 444 1

原创 408学习笔记-数据结构-1-第一章-绪论

此为数据结构学习的总纲,务必牢记。

2024-03-23 17:13:45 1162 1

原创 408学习笔记-17-C-C/C++中程序内存区域划分

在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。——《函数栈帧的创建和销毁》:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。:存放函数体(类成员函数和全局函数)的二进制代码。:存放全局变量、静态数据。程序结束后由系统释放。

2024-03-22 22:11:08 482

原创 408学习笔记-16-C-动态内存管理

常规定义出来的变量,它们的大小都是已经规定好的,即在内存中开辟的内存空间都是固定的;且空间大小不可调整,可能会造成内存空间的浪费。于是C语言引入了动态内存开辟功能,让程序员自己可以申请和释放空间,就比较灵活了。

2024-03-22 20:38:35 1212

原创 高数-第一讲-函数极限与连续(1)

是基于。

2024-03-19 21:41:41 2136

原创 408学习笔记-15-C-结构体

结构体是一种自定义类型。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

2024-03-18 18:42:51 623

原创 408学习笔记-14-C-数据在内存中的存储

整数型存储就是所有整型家族里的数据类型的存储方式,也就是说包含了字符类型的存储(因为字符的''操作符的返回值是ASCII码值,故实际上存储的是整数)。

2024-03-16 21:33:04 1255 1

原创 408学习笔记-13-C-C++语法中的引用和布尔类型

在以上cpp代码中,就是引用。我们知道,在C语言的语法中,叫做取地址符;但是在C++中,当出现在函数形参的定义中,且与形参紧挨着,则就叫做引用。在此时不要将&理解为取地址符,引用和取地址符是两个不一样的东西,他们有不同的功能。在以上代码形参变量p指明了p1是一个指针变量,int指明了p1所要指向的对象的数据类型为整型,而并不是对数据类型进行限制,而是作为标志标记p1。的作用是:让所标记的形参变量p1与作为实参的变量p产生数值上的动态关联,使得在子函数中修改所标记的形参变量p1。

2024-03-12 21:53:07 462 1

原创 408学习笔记-12-C-全局变量、局部变量、静态变量

全局变量就是声明在main()函数外的变量,作用范围是整个C工程(其实是从定义位置到程序末尾有效),也就是说同一个C工程中的其他.c文件均可调用。但是有个例外,static关键字修饰全局变量,会使它本地化,就不能被其他.c文件调用,作用仅限于当前.c文件。

2024-03-11 19:02:14 452 1

原创 408学习笔记-11-C-字符函数和字符串函数

用于计算字符串长度(除了末尾的'\0'。字符串以'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0'注意:1、参数指向的字符串必须要以'\0'结束。2、注意函数的返回值为sizt_t,是无符号整型。3、strlen的使用需要包含头文件。

2024-03-09 16:00:12 688 1

原创 408学习笔记-10-C-指针(4)

指向函数栈帧的指针变量。

2024-03-06 22:14:23 437

原创 408学习笔记-9-C-指针(3)

访问字符串时是访问的处于栈区的字符串的拷贝件,栈区的数据是可以修改的,故而此种方法对字符串不仅能做到读取,也能做到修改,还需要多注意一点的是,这种方法在静态区依然存放着字符串的原件,只是没有使用而已。访问字符串时是访问的处于静态区的字符串原件,静态区里的数据是不能修改的,故而此种方法只能做到对字符串的读取,而不能修改,所以以这种方式定义字符指针时,最好将其定义为常量指针;的一份拷贝),并将这份拷贝放入栈区刚开辟的空间中(其实就是从数组的首元素地址开始铺设所拷贝的数据)。结束之间的字符串内容进行拷贝,包含。

2024-03-06 15:48:18 496

原创 408学习笔记-8-C-指针(2)

在研究数组名之前要明晰一个点:在C语言中虽然没有对象,但是我们定义的变量是具有对象的结构的,即一个变量不止单纯地存放一个值,还有其他诸多属性。通过&数组变量名5元素整型数组,所指向的数据类型的量级为4*5byte。(这里还可以看出,数组的数据类型取决于元素的数据类型与元素的个数:两个数组的元素的数据类型不同,数组的数据类型不同;两个数组的元素的数据类型相同,但元素个数不同,那么数组的数据类型也不同)可是,数组变量名的特点就在于,它内置了一个指向数组中int,所指向的数据类型量级为4byte。

2024-03-05 22:16:47 452

原创 408学习笔记-7-C-指针(1)

内存会被划分一个个的内存单元,每个内存单元的大小为1字节(8位),每个内存单元都有一个独一无二的地址值。未使用的内存空间的地址值叫;已使用的内存空间的地址值叫。变量的定义就是为这个变量开辟内存空间,初始化就是为这个内存空间赋值,变量在定义后,它所开辟的内存空间的地址值就成了指针。

2024-03-03 22:27:24 416

原创 数据类型的量级

数据类型的量级就是指数据类型的精度,也就是指用数据类型定义的数据在内存中所占用的内存空间大小。系统中是这样,不同的系统,不同的系统位数的量级是不一样的。1、并不是所占空间越大,量级就越大。2、以上的排序只是在。64位Windows。5、C语言中浮点类型。

2024-03-03 21:47:33 667

原创 408学习笔记-6-C-整型提升、截断、算数转换

C语言中的结构体可以类比Java这种面向对象程序语言中的类,可以将其形象地理解为一种模具。

2024-03-01 19:16:11 381

原创 408学习笔记-5-C-栈区内存的空间分配方式

注意,这里要与大小端存储区分开,大小端存储决定的是单个数据内部字节的排列顺序 ,大端是字节由低地址向高地址排列,小端是字节由高地址向低地址排列,排序单位是单个字节。而栈区内存分配次序的操作单位是单个数据,也就是在栈区中,数据的排列顺序统一都是按照数据的定义次序从高地址向低地址排列。2、但是,像数组,结构体这样的复合数据类型,内部的数据随着下标的增长,地址是由低到高变化的。栈区内存的空间分配方式,默认先使用高地址处的空间,再去使用低地址处的空间。3、因此如图,数组在发生访问越界时,其实就是在。

2024-02-06 17:45:29 379

原创 408学习笔记-4-C-函数

2、数组传参后,在函数中对数组的操作其实是对原数组的操作,并不会像1中说的那样再创建一个相同的数组。这是因为数组传参时传给函数的是指针。函数内对数组的操作都是基于指针的操作。1、函数中的形参只有在函数被调用时,也就是实参传入时,才会创建内存空间。且形参和实参虽然值相同,但所在的内存空间是不同的。

2024-02-05 22:29:09 420 1

原创 408学习笔记-3-C-数组

的作用是指跳过本次循环中剩下的代码,而不是笼统的跳过本次循环。,并没有进入下一个循环,而是导致死循环的情况。

2024-02-03 16:54:31 415 1

原创 408学习笔记-2-C-分支语句和循环语句

逻辑运算符的参与者分别是:0、非0整数。结果是:0、1。

2024-02-02 19:46:38 449

原创 数组名的探究

数组名其实是个很玄的东西,从本文对数组名的探究也可验证,在C语言中虽然没有对象,但是我们定义的变量是具有对象的结构的,即一个变量不止是代表了这个变量的值,还有其他诸多属性。然而这里要说的是:数组变量的内部还隐含了一个指向首个一阶元素的常量指针,这个指针的量级为首个一阶元素的类型,并且数组变量名的实际值就是这个指针的值。同时注意:地址与指针的区别,当一片内存空间未被使用,则它的标识叫地址,当它被使用了,则它的标识叫指针。我们可以得到这个变量在内存中的指针,且这个指针的量级为。的值相同,但量级不同,

2024-01-29 19:00:48 370

空空如也

空空如也

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

TA关注的人

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