- 博客(36)
- 收藏
- 关注
原创 函数递归与栈的关系
当运行到fun2这个函数时,思路和上面个一样,将运行完fun2函数之后的下一个代码的地址压入栈中,并且将fun1函数的一些数据也压中栈中。当运行到fun1这个函数时,会将运行完fun1函数之后的下一个代码的地址压入栈中,并且将fun1函数的一些数据也压中栈中,在上面的图中可以看出,fun2先被执行完毕,被执行完毕后就会依次出栈,这里运用到的就是栈的思想。在main函数里面,调用fun1函数, 在运行fun1函数时,又调用fun2这个函数。前面学习的栈的知识中,数据的入栈和出栈的规则是先进后出(FILO)。
2023-09-19 20:27:43 133 1
原创 数据结构———队列
因为只有入队操作才可能导致队列为满,只有出队操作才可能导致队列为空。当变量表示入队时,在这种条件下,如果数据的数量==10,则队列为满当变量表示出队时,在这种条件下,如果数据的数量==0 ,则队列为空那么这时候怎么表示数据的个数呢?还是用num++ num--吗?这时候有一个固定公式:(rear+MAX-front)%MAX ==数据的个数。
2023-08-21 23:47:46 204 1
原创 数据结构——栈
顺序栈在内存中的存储时连续的一片,因为需要用数组的形式开辟一片空间同时,数据的输入和输出也和其他数据结构有些不同这里的特点时先入后出,后入先出,last in first out如下图所示:从图中我们可以直观的看出,数据一被放在了最下面,必须从最顶端一个个往外拿。并且,此时最上面被称为栈顶。最下面称为栈底。类似于我们初始化一个顺序表一样。不同的是 顺序表中的int类型的代表数据的数量,而上面代码中的top起到了指针的作用,指向了第几个数据。
2023-08-19 23:31:21 292
原创 数据结构——单链表
链表是由一个个结点,通过指针串联起来的,一个结点是一个结构体,结构体中包括数据域和指针域。数据域中存储数据,指针域存储的是下一个结点的地址。
2023-08-17 20:47:24 142
原创 Python——列表的增、删、改
这里需要注意的是 后面多了一个方括号,意思为 :把原来的列表当成一个元素添加到后面。创建的一个列表 . extend(需要添加的多个元素组成的列表)创建的目标列表 . inset(列表的索引序号,索要插入的元素)注意的是:如果remove中的元素不存在,则提示valueerror。创建的目标列表 . remove(需要删除的元素)注意的是:如果pop中没有数字,则删除列表中最后一个数据。创建的目标列表 . pop(索引的位置数字)将列表中的数据删除,但列表存在。
2023-07-14 18:10:36 415
原创 使用malloc,calloc,realloc过程中常出现的错误
因为你只开辟出了40个字节,但是这里你访问到了80个字节,属于越界访问。所以在用指针p进行操作时,我们需要先检测这个指针是否2维空指针!因为在死循环里,始终连续开辟一个40个字节的空间,但是没有释放。对空指针进行解引用会造成不可预知的后果,导致程序崩溃。就会导致占用的内存逐渐增多,会让电脑变卡,甚至死机。为了避免以上的错误,我们要养成释放后改为空指针的习惯。不要小看这个小小代码,在电脑上不要轻易运行,再次对空指针释放时,不进行任何操作。第一次释放之后p改为了空指针。运行时,程序就会报错。
2023-05-02 20:05:19 540
原创 动态内存管理(malloc,calloc,realloc和free)
所以,我们不管三七二十一,都建立一个新的指针p2,让这个指针指向新开辟的空间,这样就避免了出现的两种情形下,指针改变的情况。malloc的返回类型为 void*类型的指针 ,这个指针指向开辟出的新空间的首空间的地址。函数变量是空间字节数的个数。因为用calloc开辟的10个整型空间,初赋值为0,用realloc给这个空间扩展空间之后,没有初赋值,所以是随机数。假如,我们在引用上面两个函数中任意一个建立了一个空间,但是后来发现,建立的空间剩余太多,或者空间不够了。原因是什么,为什么这么做?
2023-04-28 08:51:58 205
原创 结构体——枚举——联合体(共用体)
初定义时,用花括号括起来,在里面,根据前面的结构体类型里面的几个类型输入相应的变量,并用逗号隔开。然后排double类型 (占8个字节),但是short后面是4.需要放弃4个格子,从8开始,占8个,最后是16个。但是和结构体不同的是,其中的变量通常为 int ,unsigned int,signed int ,char。联合体的格式和结构体的差不多。在引用的时候,只能定义一个数,另一个数根据占字节大小,大小为另一个数的其中一部份的大小。一个变量里的类型都是一样的,要么是int类型,要么是char类型。
2023-04-23 23:23:53 231
原创 二维数组——指针
a是a[0]的地址,而a[0]又是a[0][0] ,a[0][1].....a[0][5]数组的首地址。在*(a+i)的基础上在加上j:*(a+i)+j-----------对第i行首元素地址进行解引用,得到的是第i行第一个元素的大小!在进行取值操作 : **(a+i)---------最后在进行取值操作:*(*(a+i)+j)--------相应i行的地址往后移动j个 ,找到i行j列个元素!还有进行取值操作 : *(a+i)---------此时得到的是第i行那一行元素的首元素地址!
2023-04-20 07:59:50 131
原创 正式学习C语言——指针数组,数组指针
arr1和arr2都是变量名,后面加上 [ ] 之后,代表的是数组,数组里面所存的内容的类型是前面的int 和 char.p代表的是变量名,*表示这个变量是一个指针变量,前面的类型表示这个指针指向的内容的类型。表示*p是指针变量,指向一个数组((*p)[ ]);所以p先和【】结合表示一个数组,在根据前面的int*,表示数组里的内容是指针。首先,明确的是,指针数组是一个数组,内容存放的是指针。那么,如何用指针数组打印出数组里所存指针指向的内容?所以按照上面的格式,指针数组的格式应该是。1.什么是指针数组?
2023-04-17 21:03:17 89 1
空空如也
定义了一个结构体指针,带入函数显示未初始化
2023-08-17
给malloc开辟的空间赋值,发生错误
2023-08-15
html,修改<form action=的参数就会报错
2023-08-12
pycharm中已经下载了该模块,引用时报错如何解决?
2023-08-09
学习python爬虫,代码没有报错,运行时出错
2023-08-09
pycharm生成exe文件却无法运行
2023-08-07
打包生成的.exe文件无法打开
2023-08-07
python打包时显示和一个文件不兼容
2023-08-06
关于#python#的问题:无法创建一个新的 .jpg文件 复制另一个图片的内容
2023-07-31
最后始终是 if语句报错,如何解决?
2023-06-05
用另一种形式写参数变量
2023-05-26
关于#c语言#的问题:
2023-05-26
数组名和数组名的地址为何相等
2023-04-04
数组中关于地址相关的问题
2023-03-29
关于#表达式必须包含整形#的问题,如何解决?(语言-c语言)
2023-03-05
关于#c语言#的问题:遇到表达式必须为可修改的左值
2023-03-05
关于#c++#的问题:代码运行是时打印出B,ASCII表中不是只定义了0到127个字符吗
2023-01-01
用matlab输入一个n阶矩阵
2022-11-28
用matlab输入一个n阶矩阵
2022-11-28
代码运行和自己的预期不符合
2022-11-14
代码没有出错,但是无法运行
2022-11-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人