自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复杂度的讲解

数据结构可以简单理解为在内存中管理数据它具有速度快 带电存储的特点(临时存储)如何衡量一个算法的好坏因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间1.时间复杂度。

2024-11-08 21:52:14 722

原创 编译和链接

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间int main()//正在编译的文件名//编译的行号//编译的日期//编译的时间//正在编译的函数的名字return 0;注意:在define定义标识符的时候,不要在最后加上;如://#define 定义标识符int main()INT b = 10;return 0;

2024-10-25 12:11:23 747

原创 对通讯录的升级

这篇文章是对模拟实现通讯录的补充在之前的模拟实现通讯录中升级了两个功能1.实现通讯录内存的动态管理2.以文件的形式保存了通讯录,保证在下一次运行代码时能找到上一次保存的联系人。

2024-10-21 20:40:39 393

原创 文件的操作

程序中的数据都是放在内存中的,如果要保存这些数据不至于丢失,可以使用文件来保存信息,文件是放在硬盘上文件打开时,内存创建文件信息区,文件信息区是用来存放文件的相关信息。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名FILE。文件信息区中是FILE类型的结构体通过一个FILE的指针来维护这个FILE结构的变量FILE* pf;//打开文件FILEfopenconstcharfilenameconstcharmode//关闭文件。

2024-10-17 18:17:08 920 1

原创 动态内存管理

(必须通过malloc或者calloc函数开辟空间,柔性是通过realloc函数来改变数组的空间的大小来改变的)int 创建的变量是在栈区,而free函数释放malloc,calloc,realloc申请的空间。如果我们的代码是在一个给别人用的函数中,你在里面做了二次内存分配,并把整个结构体返回给。(其实,我个人觉得也没多高了,反正。函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。

2024-09-30 13:34:30 788

原创 模拟实现通讯录

这里显示了之前增加的四个联系人分别是 牛爷爷,壮壮,胡英俊,胡图图,并将他们显示出来。1.完成对菜单和通讯录功能基本循环的实现。3.初始化成功后开始实现通讯录的功能。这里修改了牛爷爷的 年龄和住址。这里是按照名字的首字母顺序排序的。模拟一个通讯录有以下条件和功能。2.创建通讯录并对其初始化。这里查找的联系人是胡英俊。在这里删除了联系人壮壮。contact.h文件。contact.c文件。3.2显示所有联系人。

2024-09-25 15:29:29 320

原创 自定义类型:结构体,位段,枚举和联合

1.位段的成员必须是 int, unsigned int, 或者signed int(在C99之后也有其他类型,但主要是 int和char)4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整 体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的降低。当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。结构是一些值的集合,这些值称为成员变量。

2024-09-24 14:56:42 882

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

strlen函数strlen是用来统计字符串\0之前的字符的个数由此可见strlen的返回类型是size_t 参数类型是const char*模拟实现strlen函数方法一方法二方法三strcpy函数strcpy函数是用来实现字符串的拷贝的char*strcpycharp1,constchar* p2strcpy函数的返回类型是char* ,返回的是待拷贝字符串的起始地址参数类型也是char*,和 const char*,以保证模版不会被修改p1。

2024-09-19 13:55:45 945

原创 指针的进阶

头文件是底层使用的是快速排序的方式,对数据进行排序的,这个函数可以直接使用,这个函数可以用来排序任意类型的数据,默认排序是升序int main()//strcmp比较的是字母的ASCII值的大小//先从首元素比较 a和a相同,但是q的ASCII值比b的大// 所以就会返回小于0 的数//return 0;

2024-09-08 16:04:52 932

原创 关于数据的存储

大小端指的是数据在内存中的存储顺序大端字节序存储:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;小端字节序存储:是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。由此可见VS编译器采用的是小端字节序存储。

2024-07-07 15:08:21 782

原创 如何用VS写出更好的代码

我们可以看到strlen函数的返回类型是size_t,即无符号整型,形参是用const修饰的char*我们可以看到strcpy函数的返回类型是char*,两个形参的类型是char*,在*右边时,const限制的是指针变量p,也就是说p变量中的地址不可变,但是此时*p是可变的,也就可以同过解引用来该变p所存储地址所指向变量的值。const在左边时,const修饰的是*p即const *p,这样其实限制的就是*p所指向的变量,此时指针变量p是可变的。当const修饰变量时变量依旧是变量,不是常量。

2024-06-21 20:02:37 401

原创 C语言扫雷游戏

关于扫雷游戏大家都不陌生,接下来我会用C语言为大家介绍在9*9方格中,有是个雷的扫雷游戏的代码设计在9*9的棋盘中设置10个雷排查雷1.如果这个位置不是雷,就计算这个位置周围八个坐标 有几个雷2.如果这个位置是雷就炸死了,游戏结束,你输了3.如果把不是雷的位置都点开了,那也游戏结束,你赢了在这个数组中0表示不是雷,1表示是雷在排查雷过程中如果在9*9棋盘的边界,判断周围8个格子时容易造成数组越界所以数组应该设置成11*11,但是雷在中间的9*9布置。

2024-06-19 17:52:15 267

原创 6.C语言结构体

结构体成员就是 char name[20] ,int age,char sex[5]结构体是值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。非常明显这样写是错误的,在传参的时候,形参紧紧只是实参的一份临时拷贝,结构变量的成员是通过点操作符(.)访问的。结构体成员可以是标量、数组、指针,甚至是其他结构体。结构体变量就是 s1,s2,s3。写一个函数打印结构体中的存放数据。结构体指针访问指向变量的成员。结构体变量访问结构体成员。结构体变量的定义初始化。

2024-06-18 18:52:49 358

原创 5.C语言指针

当有32个地址线时,也就有32个0/1, 32bit=4byte,所以一个指针变量就占用了4字节。当有64根地址线时,也就有64个0/1, 64bit=8byte,所以一个指针变量就占用了8字节。指针变量:就是用&操作符取出变量的地址,把地址存在另一个变量中,就是指针变量。指针变量也是变量,是变量就有地址,那指针变量的地址存放在二级指针中。指针-指针的结果的绝对值是两个指针之间的元素个数(指针就是地址)2.平时口语中的指针,指的是指针变量,也就是存放内存地址的变量。

2024-06-17 18:42:49 767

原创 函数的递归(对函数的补充)

递归就类似于循环其实我在写函数博客的时候就想把递归也写了,但是当时我自己在写关于递归的一些题目的时候也经常写不出来,智商不太够用啊。后来看着看着发现又好像会写了,这才补了出来。这次我还找了一个抽象的封面。对于递归的解释递归就是递推+回归程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略。

2024-06-15 21:36:49 358

原创 三子棋游戏

1.对于三子棋游戏我们可以先创建一个菜单示例如下2.棋盘格的初始化这里可以创建三个文件,一个test.c文件用来放主函数main部分game.h文件用来存放头文件以及函数的声明等game.c文件用来存放函数体这里可以先进行棋盘格的打印打印出来的棋盘格如下3.玩家下棋玩家下棋的样例如下4.电脑下棋我这里电脑下棋不够智能只能在棋盘格上面找一个空格下,当然了电脑下棋不够智能的原因是我不够智能5.判断输赢。

2024-06-11 18:48:24 192

原创 4.C语言操作符

4.操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员4.1算数操作符其他操作符没有要注意的,主要介绍/操作符和%操作符算数操作符有其他操作符没有要注意的,主要介绍 / 操作符和%操作符4.11 %取余操作符的两个操作数必须是整数,返回整除后的余数4.122 /操作符对于除法操作符(/),如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。4.2移位操作符。

2024-06-09 18:47:19 661

原创 3.C语言数组

1.一维数组1.1一维数组的创建一维数组的创建有三部分1.数据类型 2.数组名 3.常量或常量表达式//C99 之前数组只能是常量指定大小//C99 之后引用了变长数组的概念,数组的大小是可以使用变量指定的//但是VS2022、2019 不支持C99的边长数组的1.2一维数组的初始化数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。1.3一维数组的使用数组是通过下标来访问的数组大大小可以通过sizeof来计算1.4。

2024-06-05 14:03:35 442

原创 2.C语言函数

函数的分类1.库函数2.自定义函数一.库函数库函数是由C语言提供的吗?不是的,C语言提供了库函数的标准,由各厂商实现C语言对函数的标准规定那strlen函数举例1.函数的功能 :求字符串长度的2.函数名:strlen3.函数参数:const char*4.返回类型 size_t举例关于库函数使用的1.pow函数由图可知pow函数 的返回类型是double型,参数类型也是double型。头文件是math.h2.strcpy函数strcpy。

2024-04-27 22:10:42 1430

原创 1.C语言分支和循环语句

分支语句 1.if2.switch循环语句 1.while2.for转向语句 goto语句1.分支语句1.1if语句if语句的三种形式else1.11表达式中的值,0表示假,1表示真1.12if语句中大括号的作用if else是一条语句。在没有大括号时if和else后面只能接一条语句1.13else和if的匹配讲究就近原则注意if else语句在写时最好应该有大括号这样更规范1.13if语句的两个练习1.判断一个数是否为奇数。

2024-04-23 22:39:13 1435

原创 第一篇博客

我是一名在校大一学生,今年十八岁。在读专业是软件工程,希望可以通过写博客的形式来对自己的所学知识进行一个总结,希望可以通过CSDN这个平台和大家分享交流与编程相关的知识。编程的目标和计划我希望可以在接下来的一年时间里学好c语言,数据结构,计算机网络,操作系统等基础课程。能熟练的去使用代码解决问题,在学习编程的过程中,我打算多去动手写代码,当代码出现错误时,要尽力去自己解决,如果遇到实在无法解决的问题再去求助老师。我会尽可能花费更多的时间去学习编程,保证每个星期有40个小时时间学习编程。

2023-06-11 16:32:39 173 1

空空如也

空空如也

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

TA关注的人

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