自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构——单向链表

(2)链表是逻辑结构连续物理结构(在内存中的表现形式)不连续。(2)链表, 不需要预先分配,大小可变,动态分配。(1)顺序表 需要预先分配空间,大小固定。(1)顺序表是一段连续的存储单元。单向链表找倒数k个节点。三、顺序表和链表 优缺点。3.单向链表找中间结点。6.判断是否循环列表。

2025-05-22 09:27:49 266

原创 数据结构——链表

(1)为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。把存储元素信息的域叫数据域,把存储直接后继位置的域叫指针域。这两部分信息组成数据元素ai的存储映像,叫结点(Node);(1)线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。(2)也就是说前面的顺序表只需要存储数据元素信息就可以了。1.线性表的链式存储目的:解决顺序存储的缺点,插入和删除,动态存储问题。

2025-05-22 09:23:04 136

原创 数据结构——线性表

(2)当线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,为空表。在非空的表中每个元素都有一个确定的位置,如果a1是第一个元素,那么an就是第n个元素。如果存在多个元素,第一个元素无前驱,最有一个没有后继,其他的元素只有一个前驱和一个后继。2,有穷性,执行的步骤会自动结束,不能是死循环,并且每一步是在可以接受的时间内完成。(2)链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。(1)顺序存储,数据存放在连续的存储单位中。1,输入,输出特性,输入时可选的,输出时必须的。

2025-05-22 09:11:05 804

原创 C语言——结构体

4.打印枚举都可以用%d打出,sizeof是4,printf(“%d”,w);3.访问:对共用体进行访问时的结果,是对最后赋值的成员的结果;(1)默认按照计算机位数对齐,64/8=8最终大小必须是8的整数倍;共用体在里面的作用时降低通信内存的负担,提高通信的效率;1.目的:创建一个数据类型,枚举一些需要的,这个数据类型的范围就是所枚举的;2.使用:此时INT不是变量名,是个数据类型名,给int起了别名INT;(2)从结构体中的成员中查找最大字节的成员,最终按此成员大小对齐;(3)右移:有符号位称算术右移;

2025-05-21 10:24:57 764

原创 C语言——字符串指针

(2)用法:把函数声明去掉函数名,在去掉的位置上加(*p),eg:int (*p)(int a,int b);(3)realloc函数:作用是相当于重新开一段新的空间,将原来空间的内容拷贝到新空间,并释放原来的内容;当主程序结束时,垃圾回收器会回收未释放的指针,(只适用于有操作系统,不适用于裸机程序);(2)不能返回局部变量的地址,但是也可以在局部变量前面加static让变量的生存期变为静态生存区,常用传入一个指针,返回该指针,(1)函数的形参是指针的指针,实参是指针数组,也被成为二级指针;

2025-05-21 10:15:42 406

原创 C语言——数组指针

3.void *:万能指针,可以接受任何类型的地址,但是万能指针不能作为指针进行指针运算,常要与强转搭配使用,一般是写代码自己也不知道是什么类型,降低程序耦合性。数组指针:int (*p) [10]:是指向长度为10的整型数组的指针,保存了一个地址,为该整型数组的首元素地址;(1)二维数组名就是指向长度为cols长度的一维数组首数组指针,一维数组名相当于指向该一维数组的首元素的数组指针;(1)格式:基类型 (*指针名)【元素个数】;(2)区分指针数组和数组指针。(6)strncpy函数。

2025-05-15 19:29:03 404

原创 C语言——指针

3.为了杜绝野指针的出现,int *p = NULL/p =NULL,p称为空指针,空指针无法进行指针运算,他代表指针的状态,表示该指针指向的空间不可被访问;(2)减号两端可以都是指针,必须要保证两个指针的基类型一致,相减之后的表达式时int型,差值是两个指针之间相差了几个基类型,差值的正负可以判断两个指针的前后位置;` (2)*a++回导致编译报错,*p++可以,因为p是指针变量,但是a是指针常量;(1)在加法两端必须是一个是指针一个是常数,不可以两端都是指针;(2)常用于整型数组中;

2025-05-15 19:22:27 254

原创 C语言——宏定义

预处理:预处理命令就是在我们代码的最前面,写成# + 命令的这种形式的就是预处理命令,在进行正式的编译之前,对源文件进行一些文本方面的处理,比如文本替换、文件包含、删除部分代码等,这个过程就叫做预处理。1.正确灵活的运用指针,可以有效地表示复杂的数据结构,可以动态分配内存,方便地使用字符串,有效而方便地使用数组,再调用函数时能获得1个以上的结果。如果表达式的值为假,则不执行下面的程序。编译:把预处理之后的c代码(人类能看懂的)翻译成计算机能看懂的汇编语言,同时检查语法错误等,但此时还不能够直接执行。

2025-05-15 19:16:38 775

原创 二维数组函数传递

有静态生存期为其包括全局变量、静态局部变量static int s_i(把s_i的空间由动态改为静态,在main函数第一条语句之前已经开好空间了,有静态生存期,但是有局部作用域);3)全局变量:为了实现函数的传参,但是通常不使用,使用后其函数要与定义的全局变量绑定在一起,耦合性不够且空间也浪费,尽量不使用;2)全局作用域:在任何花括号之外的变量,叫全局变量,生效范围是从定义开始,到本文件结束是结束(int g_i);1)auto(自动)变量:局部变量前,默认时auto,表示该变量的开辟、销毁是自动的;

2025-05-13 16:32:46 599

原创 函数递归,数组

2)当使用数组作为参数传递时,因为传递的总是地址,是指针传递,可以是下面被调函数修改主调函数,并且这样的传递方式,可以提高效率。2)同样因为传递的总是地址,是指针传递,可以是下面被调函数修改主调函数,并且这样的传递方式,可以提高效率。2)编写程序实现void itoa(char s[], int n);,原因是栈会很快堆满;递归调用会很占内存,一次递归需要一次空间分配,能用循环用循环;1)编写程序实现int atoi(char s[]),实现字符串转整型;1)要传递一个参数,数组名,可以省略传递数组长度;

2025-05-13 16:28:12 414

原创 C语言——函数

1)在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。返回值:函数的运行结果:返回值与函数类型不一致,将返回值转函数类型,实参与形参类型不一致,将实参转为形参类型,返回值不可是数组本身,可以返回地址;5).在C语言中,实参向形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。1)栈区:系统自动分配、释放空间,用于存放地址、函数定义的变量、形参。函数类型:运行结果的类型,可以为任何类型,如不写默认int型;3)在被定义的函数中,必须指定形参的类型。

2025-04-28 09:03:23 174

原创 C语言——二维数组

数据类型 数组名[常量表达式] [常量表达式]列数:cols=sizeof(a[0])/sizeof(a[0][0])注意: 可以省略行,不能省略;(3)单一性:里面的元素数据类型都是单一的;行数:rows=sizeof(a)/sizeof(a[0])(2)有序性:存放元素的顺序是有序的;(1)格式:数组名[下标][下标]1.char 数组名[常量表达式][常量表达式];(1)连续性:存储空间是连续的;4.二维数组的初始化。

2025-04-28 09:00:22 205

原创 C语言——数组2

2)如果s1相对应位置元素比s2相对应位置元素的ASCII码大,返回一个正值;至少是strlen(s1)+strlen(s2)+1;2)与sizeof相比较,strlen是字符串中有效字符长度,sizeof是占的总内存的空间(包括“\0”)2)注意:目的数组空间一定要能存下源数组的至少strlen(s1)+1;’0‘:字符0,char,一个字节,ASCII的48。1)格式:strcpy(目标,源);‘\0’:空字符,一个字节,ascii的0。“0”:字符串,两个字节(还有个\0)

2025-04-27 18:14:00 437

原创 C语言——数组

求a[-1],此时会造成数组越界访问,会改掉其原有位置的数据。通过a[ ]进行赋值时,不可以给超过数组空间的其他量赋值。1.数组的定义方式:类型说明符 数组名 [常量表达式]注:数组可以被初始化,但不能被赋值。没有给定初值的元素,其初始化值为0。常量表达式用来表示元素的个数,即数组长度。单一性:每个元素类型一致,字节大小一致。3.冒泡排序:相邻两个元素两两比较,小的放前,大的放后。2.数组的引用:数组名 [下标]2.选择排序:合适的位置放合适的数。

2025-04-27 18:00:55 225

原创 C-循环结构

2.语句标号标识符表示,其命名规则与变量名相同,由字母、数字、下划线组成,开头不能是数字。3)while的循环体可能一次不执行,但是,do...while至少执行一次。0时,执行while里面的语句,先判断表达式,后执行语句。1)do...while是先执行循环体,然后判断循环条件。continue:循环短路语句,终止本次循环,不影响后续循环。1)格式:while(表达式)语句。1.break:循环短路语句,终止循环。表达式3:让循环体趋于结束的语句;1)循环变量初始化语句;表达式1:循环变量初始化语句;

2025-04-25 12:31:45 372

原创 【无标题】

如果是自左向右计算时,根据第一个的真假可直接判断出整个结果的真假,往后的直接截断,不用再进行判断,此时因为后续未进行判断,后面进行的各种计算不影响元素的值,此时元素的值由计算到的位置判断。如果if后面语句只有一行,可以省略{},但是,最好写上,并且左右花括号要独占一行;在进行与常量的比较时,常量写“==”的左边,变量写“==”右边;注意:else if后面需要加括号,括号内加条件,并且此条件不可和前面的条件相交;"&&"和"||"是自左向右;2.解释:表达式真,结果是表达式2;"大于"&&"大于"||"

2025-04-25 11:04:22 404

原创 C语言输入输出

m.nf: m表示这个总域宽(包括小数点),n表示小数点保留位数(四舍五入)%nd:以n位域宽打印,不足n位就拿空格补齐,若n太小不足位数,以实际打出;1)功能:从终端接受字符串并转换为对应的数据形式存放在内存中;格式:putchar(‘ ’)/putchar( )2)格式:printf(const char *,...);1)可以指定输入数据所占的列数,系统自动按它截取所需数据。格式:getchar();(1)putchar:向终端输出一个字符,(2)getchar:向终端接收一个字符。

2025-04-23 10:18:09 194

原创 【无标题】

(2)符号位扩展:short-->long:把shout放在int的低位中,其他位置如果short是正数,就补0,如果short是负数,就补1;在右侧操作数为0时,编辑器不会报错,但是运行程序会崩溃,且后面的语句不再执行。i:只读变量,只可被初始化,不可赋值,但是依旧是变量,是左值。2.与赋值不一样,在变量生存期内,赋值可以多次进行,但是初始化只能进行一次。(1)赋值是内存空间的拷贝,若空间一样,可以直接拷贝;(3)高位截断:大空间放小空间,直接截断高位,取低位;1)++i:先加再用,没有开辟临时变量,

2025-04-23 09:26:51 355

原创 C语言基础

3.小端存储:字节或半字节的最低位字节(Least Significant Bit,LSB)存放于内存最低位字节地址上。(3)十六进制:形式:0x****,与二进制转换是四位二进制数表示以为16进制数。(1)八进制:形式:0***,与二进制转换是三位二进制表示一位八进制数。此时,数值0.9是double类型,比float类型的精度大,结果为no。1.用‘ ’引起来的可以存放字符,其数据类型表示:char ,内存大小占一个字节。在‘ ’内只能放一个字符,若‘ ’内放了多个字符,按最后一个算。

2025-04-17 18:27:16 280

原创 Linux基础

ls -l 查看当前目录下的文件详细信息。

2025-04-17 13:52:47 482

空空如也

空空如也

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

TA关注的人

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