- 博客(15)
- 收藏
- 关注
原创 【数据结构】顺序表和链表
概念:链表是一种物理存储上非连续、非顺序的数据结构,其数据元素的逻辑顺序是通过节点间的指针链接实现的。4.注意:慎用assert断言。顺序表、链表、栈、队列和字符串。3.静态顺序表 ,动态顺序表。物理存储结构并不要求连续。2.功能:增删查改。2.功能:增删查改。
2025-07-06 00:28:22
804
原创 【数据结构】时间复杂度与空间复杂度
本文介绍了算法效率的评估标准,重点分析了时间复杂度和空间复杂度。时间复杂度衡量算法执行速度,使用大O渐进表示法,常见复杂度包括常数阶O(1)、线性阶O(n)、对数阶O(logn)、平方阶O(n²)和指数阶O(2ⁿ)等。空间复杂度衡量算法临时占用存储空间大小,同样采用大O表示法。通过多个案例(如冒泡排序O(n²)、二分查找O(logn)、递归阶乘O(n)、斐波那契递归O(2ⁿ)等)具体说明了复杂度计算方法,并强调评估时应考虑最坏情况。空间复杂度分析则关注算法运行中额外申请的空间,如递归调用栈空间O(n)或动态
2025-07-04 21:12:39
923
原创 程序环境和预处理
摘要:本文详细介绍了C语言程序的编译执行过程,包括翻译环境和执行环境。翻译环境通过预处理、编译、汇编和链接四个阶段将源文件转换为可执行程序,其中链接器整合目标文件和库文件。执行环境涉及程序载入、启动、运行和终止。文章还讲解了预定义符号(如__FILE__、LINE)、预处理指令(如#define宏定义、条件编译)的使用方法和注意事项,包括宏函数的安全编写、#和##操作符的应用,以及如何避免宏的副作用和头文件重复包含问题。这些知识对理解C程序编译机制和编写健壮代码至关重要。
2025-06-30 23:14:24
655
原创 C语言文件操作
摘要:本文介绍了文件的基本概念、分类及操作方式。文件可分为程序文件(如.c、.obj、.exe)和数据文件,由路径、主干和后缀组成文件名。文件类型包括文本文件和二进制文件,分别以ASCII字符和二进制形式存储。文件操作涉及缓冲区、文件指针(FILE结构体)及打开/关闭函数(fopen/fclose),不同打开模式(r/w/a等)对应不同操作权限。文件读写分为顺序读写(fgetc/fputc等)和随机读写(fseek/ftell等),文件结束需通过返回值而非feof预判。文本文件用EOF/NULL判定结束,二
2025-06-27 23:23:43
632
原创 从原理到细节:数据在内存中的存储探究。
以上是我们之前了解的数据类型。数据类型所需的内存空间大小直接影响其适用范围。以整型(int)为例,在32位系统中通常占用4字节,可表示的整数范围为-2147483648至2147483647。不同类型的数据在内存中的存储和解读方式存在差异。1.大端:数据的高位字节存放在低地址,低位放高地址。2.小端:数据的低位字节存放在高位字节,高位放低位。
2025-05-16 11:04:33
831
原创 C语言——实用调试技巧篇
bug 原译有昆虫的意思。而为什么将bug定为计算机程序中的错误呢?这里有个历史典故:1947 年,美国海军的马克二号计算机出现故障,工程师格蕾丝・赫柏(Grace Hopper)排查发现是一只飞蛾钻进计算机继电器,造成短路引发错误。她将飞蛾取出,在日志中记录 “debugging”(排除故障 ,原意为 “捉虫子” )。从此,“bug” 就逐渐被用来指代计算机程序或系统中的错误 ,“debug” 也成了调试程序、排除错误的术语。在我们vs2022里debug与release所在处。
2025-05-15 13:05:33
907
原创 C语言——指针篇
不是它指向的是其首个字符的地址,就像我们之前了解的内存单元,char*所指向的字符串的每个字符都有一个地址,你一个指针怎么能把所有的地址给表示出来呢。野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,简而言之,就是指针指向了我们不知道的地方。数组名表示的是数组首元素的地址,也就是说数组与指针有相似处,可以用数组名以指针的方式用,也可以指针以数组的方式用。其实这个指针就是套娃,一级指针就是将数据的地址存起来,二级指针就是将一级指针的地址存起来。
2025-05-14 20:42:36
946
原创 c语言———函数篇
自定义函数,从字面上的意思,我们就能知道这是由我们自己定义的函数。而想要定义自己的函数就要了解规则。ret_type fun_name(形式参数)ret_type是函数返回类型,fun_name是函数名,()是参数的使用地。定义函数我们需要根据我们想写的函数了解所需的这些函数相关的东西。举例一个加法函数int z = 0;z = x + y;return z;int b = 0;//输⼊//调⽤加法函数,完成a和b的相加。
2025-01-04 23:52:29
820
原创 c语言——数组
这个连续增长与数组的类型有关,当数组类型为int类型,每个数组中的元素在内存中都有一个地址,因为int类型是4个字节,所以随着下标增长,地址也很会变(以4个字节一次一次变)每一个元素都有一个下标,这都是从0开始数的,比如就像上面有10个元素,它们的下标不是1到10而是0到9,这是与我们习惯上不同的一个点需要牢记。一维数组中将其中数据看作元素,二维数组则是将一位数组看作元素,依次类推,多维数组则是将前一个数组看作元素的数组。type指定数组存放数据类型,这类型可以是我们常见的类型也可以是我们自定义的类型。
2024-11-26 22:37:21
2025
原创 C语言——分支和循环
在switch中很重要(一定要加上)如果没有遇到break关键字,程序会继续执行后续的case语句中的代码,直到遇到break或者整个switch语句结束。for循环是我们更常用的循环,它将循环的初始化、条件判断和变量更新集中在一个地方,使得代码结构紧凑,对于已知循环次数的情况非常方便。使用到break可以直接永久终止循环,使用到continue则是终止本次循环后面的代码不执行,直接进入下一次循环再次进行条件判断。表达式,不能是变量或表达式的结果,且这些常量表达式的值必须是唯一的,不能有重复的情况。
2024-11-25 22:25:59
1770
原创 C语言——操作符(预算符)详解
因为8进制0~7,只需用三个2进制的数就行 如:2进制的 01101011:01换成1,101换成5,011换成3得8进制0153,0开头的数字,会被当做8进制。依照2进制转8进制,16进制只需要4个2进制的数就行了,还是2进制的01101011,0110换成6,1011换成b,16进制表示要在前加0x,所以得0x6b。如果值的类型和变量的类型不一致,会将赋值号右边的值转换为左边变量的类型。内存中存储的是补码的2进制,所以在参加移位时,移动的都是补码。进制我们通常听说有2进制、8进制、10进制、16进制。
2024-11-02 11:49:24
1689
原创 入门博客的第一天
大家好,我是2024级的一位在校大一学,来自人文渊薮之地,文章节义之邦———江西省。至于具体在哪,这可不兴说。许是曾经对计算机这类专业好找工作的印象,便走上了编程这一条路。如今,网上传着这行情下滑,但我仍相信随着时间的推移,我将拿到我想要的。
2024-10-24 07:50:19
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人