自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 队列的实现

Queue;//初始化//入队列--队尾//判断队列是否为空//出队列--队头//取队头数据//取队尾数据//队列有效元素个数//销毁Queue.c//初始化assert(pq);//入队列--队尾assert(pq);//创建一个新节点exit(1);//队列为空else//判断队列是否为空assert(pq);//出队列--队头assert(!//队列中只有一个节点else。

2025-10-27 20:38:00 900

原创 双向链表的实现

List.h//指针保存下一个结点的地址//指针保存前一个结点的地址}LTNode;//初始化//尾插//申请新节点//头插//尾删//链表判空//打印//头删//查找//在pos之后插入节点//删除pos位置的节点//销毁List.c//申请新节点exit(1);//初始化//{// exit(1);//}//尾插//头插//链表判空//尾删assert(!

2025-10-23 18:26:45 504

原创 单链表的实现

seqlist.h//结点的数据//指针保存下一个结点的地址}SLTNode;//打印链表//尾插//头插//尾删//头删//查找//在指定位置之前插入数据//在指定位置之后插入数据//删除pos结点//删除pos之后的结点//销毁链表seqlist.c//打印链表= NULL)//申请新结点exit(1);//尾插//申请新结点//链表为空else= NULL)//头插//尾删。

2025-10-10 20:41:17 613

原创 顺序表的增删查改

在执行头插之前,先把空间不够的情况进行封装,插入都要考虑空间足够和空间不够两种情况。总结:在做顺序表的增删查改操作的时候,一定要画图理解,这样才会让自己的想法归于实际。顺序表的底层结构是数组,对数组的封装,实现了常用的增删查改等接口。的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。静态顺序表缺陷:空间给少了不够用,给多了造成空间浪费。由此代码可以看出尾插的时间复杂度为O(1)。删除的前提:顺序表不能为空,所以要断言。首先,先对创建的动态顺序表进行初始化。所以头插的时间复杂度为O(n)。

2025-10-08 11:43:07 767

原创 一篇博客让你了解算法复杂度

通过上面发现,有些算法的时间复杂度存在最好、平均和最坏情况。最坏情况:任意输入规模的最大运行次数(上界)平均情况:任意输入规模的期望运行次数最好情况:任意输入规模的最小运行次数(下界)

2025-09-22 20:01:26 960

原创 预处理详解

C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值是1,否则未定义。#define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或定义宏。

2025-09-17 17:22:30 1322

原创 文件操作知识点总结

磁盘,就是硬盘上的文件是文件。但是我们在设计程序的时候,一般有两种文件:程序文件、数据文件。

2025-09-15 19:39:53 891

原创 动态内存管理知识点总结

允许是。

2025-09-09 11:17:14 1030

原创 自定义类型:联合和枚举

联合的成员共用一块内存空间,这样一个联合变量的大小至少是最大成员的大小(因为联合至少得有保存最大的成员的能力)。在C语言中是可以的,但是在C++是不行的,C++的类型检查比较严格。但是编辑器只为最大的成员分配足够的内存空间。这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以是不同的类型。当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。{ }中的内容是枚举类型的可能取值,也叫枚举常量。

2025-09-07 10:48:01 847

原创 自定义类型:结构体

目录1.结构体类型的声明1.1 结构体回顾1.1.1 结构的声明1.1.2 结构体变量的创建和初始化1.2 结构的特殊声明1.3 结构的自引用2.结构体内存对齐2.1 对齐规则(重要)2.2 为什么存在内存对齐?2.3 修改默认对齐数3.结构体传参4.结构体实现位段4.1 什么是位段4.2 位段的内存分配4.3 位段在vs上的问题4.4 位段的跨平台问题4.5 位段使用的注意事项例如去描述一个学生:1.1.2 结构体变量的创建和初始化1.2 结构的特殊声明在声明结构体的时候,可以不

2025-09-03 16:55:29 716

原创 数据在内存中的存储

是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容保存在内存的低地址处。是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容保存在内存的高地址处。

2025-08-30 16:14:28 834

原创 C语言内存函数知识点总结

当有一块内存空间需要设置内容的时候,就可以使用memset函数,值得注意的是memset函数对内存单元的设置是以字节为单位的。如果比较两块内存单元的数据大小,可以使用memcmp函数,这个函数的特点就是可以指定比较长度。memcmp函数是通过返回值告知大小的关系。

2025-08-23 14:35:39 447

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

这个错误码一般传递的是errno这个变量的值,在C语言有一个全局的变量叫:errno,当库函数的调用发生错误的时候,就会讲本次错误的错误码存放在errno这个变量中,使用这个全局变量需要包含一个头文件errno.h。用来比较str1和str2指向的字符串,从两个字符串的第一个字符开始比较,如果两个字符的ASCII码值相等,就比较下一个字符,知道遇到不相等的两个字符,或者字符串结束。简而言之:在一个字符串中查找子字符串。· 如果str1指向的字符串中存在str2指向的字符串,那么返回第一次出现的位置的指针。

2025-08-02 18:20:47 1071

原创 指针相关知识点总结

可以把内存单元划分为一个个小小的内存单元,每个内存单元的大小取一个字节。

2025-07-18 17:22:59 820

原创 操作符详解

/声明了一个结构体类型struct Stuint age;}s5,s6;//全局变量//全局变量int main()//局部变量return 0;即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯一的计算路径,那这个表达式就是存在潜在风险的,建议不要写出特别复杂的表达式。

2025-06-30 15:41:46 847

原创 简单的扫雷游戏------数组和函数实践

/函数的声明//初始化棋盘//打印棋盘信息//布置雷//排查雷的信息。

2025-05-12 20:44:34 777

原创 函数知识点简易总结

ret_type fun_name(形式参数)ret_type是函数返回类型fun_name是函数名括号中放的是形式参数{}括起来的是函数体举个例子:写一个函数判断一年是不是闰年。return 1;printf("是闰年\n");elseprintf("不是闰年\n");return 0;这是一个正常的函数形式。如果我们把is_leap_year函数放到main函数后面能得到什么?int main()

2025-05-10 20:52:49 1981

原创 数组知识点简易总结

但是我们又知道数组中每个元素都是一样大小,那么计算一个元素所占字节的个数,数组中的元素个数都能计算出来了。从结果可以看出,每个相邻的数组元素都是递增的,而且每次都增加4,因为一个整型4个字节。跟一维数组一样,相邻元素之间的间隔都是4个字节,跨行元素之间的间隔也是4个字节。题目:一个升序的整型数组,在数组中找到指定的n的值,找到了就打印n的下标,找不到就打印找不到。C语言规定数组的下标是从0开始的,如果数组中有n个元素,那么最后一个元素的下标就是n-1。C语言规定,二维数组的下标也是从0开始的。

2025-05-09 09:00:50 1233

原创 猜数字游戏

初入C语言的可以看看兴趣,也可以自己看完我写的博客自己动手敲一下。rand 函数生成的随机数是伪随机的,伪随机数不是真正的随机数,是通过某种算法生成的随机数。而rand函数是对一个“种子”的基准值进行运算编译的。rand函数会返回一个伪随机数,其范围为0~RAND_MAX,RAND_MAX的大小大部分编译器都是32767。返回的类型是time_t类型的,time_t 类型本质上其实就是32位或者64位的整型类型。时间是随时发生变化的,可以用time函数来进行改变伪随机数。4、设置随机数的范围。

2025-04-27 14:04:46 490

原创 循环的知识点简易总结

当i=5时,进入if语句,遇到continue语句,跳过后面的语句,不执行i=i+1;打印了1,2,3,4之后遇到5进入if语句,遇到break,对本次循环终止,执行return 0;这个循环是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,继续循环,表达式为假,则推出循环。循环的三种常见的语句都讲完了,可以一起去探索一下循环的奥妙,也让我们在学习C语言的路上慢慢进步。当i=5时,跳出后面的语句,继续执行i++语句,继续循环。例子:求1+2+3+···+100的值。

2025-04-24 19:38:15 492

原创 关机程序------goto语句和while语句的使用

3.strcmp是用来比较两个字符串是否相等。而字符串之间的比较不能用==。使用需要头文件#include<string.h>1.system函数:用来执行命令。它需要头文件#include<stdlib.h>4.两个字符串之间比较不能用==,要用strcmp函数。2.shutdown是用来执行关机的命令。-t是设置关机倒计时。

2025-04-23 19:55:35 181

原创 用辗转相除法求最大公约数

第三步:c不为0,继续循环,根据第二步a=16,b=12,继续执行循环体,c=16%12=4,继续进行循环体。第一步:用a%b,看余数是否为零。用c接收:int c=a%b;第二步:若c不为0,则循环体里将a=b,b=c,c=a%b。第四步:c不为0,a=12,b=4,c=a%b=0,退出循环体。第五步:得出结果b=4为28 16的最大公约数。先定义两个整数a,b,如28 16。

2025-04-21 19:44:55 415

原创 C语言入门基础,共同进步。

希望和新手小白一起同进退,如果我有编程错误,也请大家指出我的错误,起到共同监督的作用,让彼此双方的编程理解更近一步,共同进步。//定义a为一个整型常量,值为3,在此期间值不能改变。②指数形式,如12.34e3(代表12.34×10)(float)(5%3)(将5%3的值转换成float型)如‘a’,‘Z’,‘?如:7,23,0,-2004等。(int)(x+y)(将x+y的值转换成int型)(double)a (将a转换成double型)如:printf(“%d,%c\n”,i,c);

2025-04-17 09:21:49 325

原创 从hello world推开C语言大门

作为一个编程新手,我最近开始学习C语言这门经典的编程语言。虽然刚开始有些懵懂,但每当我成功运行一段代码时,那种成就感真是油然而生!第一个C程序:Hello World。

2025-03-30 21:42:11 416

空空如也

空空如也

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

TA关注的人

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