顺序表就像这样一排物理位置连续的存储空间,用来存放一系列相同类型的数据元素。数据元素在内存中是顺序存放的,因此得名。
想象一下,你在写一个程序,需要存储用户输入的整数列表。但用户可能输入5个,也可能输入500个——编译时根本不知道大小。静态数组如 int arr[10]; 太死...
指针是C语言最强大的特性,也是最具挑战性的概念。它直接操作内存,提供了无与伦比的灵活性,但同时也带来了复杂性和风险。 据统计,超过60%的C语言bug与指针使...
在本篇文章中,我们将探讨 C 语言中一个强大而灵活的机制:回调函数。我们将从回调函数的基本概念入手,并通过一个实际例子——模拟实现标准库中的 qsort 排序函...
指针数组与二维传参: 我们将从指针数组的本质和声明规则入手,理解其如何灵活地模拟二维数组。随后,揭示二维数组传参的秘密,强调必须使用数组指针来正确接收参数,以确...
C语言中的指针是其灵魂,但也让无数人感到困惑。本篇博客将带你深入理解指针学习中的四大核心难点:
在这些函数中,常用的也就只有那么三四个,判断大小写,判断是否为数字或者字母,其他的都不是很常见,故这里直接使用例子一次带过。 以下给出各个函数的用法例子,参考...
在计算机中,内存就像一栋有门牌号的宿舍楼。每个“房间”(字节)都有编号(地址),CPU 通过地址快速访问数据。
此时有20MB和10MB已经被释放掉,但注意在内存中这空闲的两段内存是不连续的。如果我此时想要定义一个25MB大小的数组,我们根据数组的特性(数组的空间内存是连...
因为我们在创建栈时,只为数组elements分配了最大容量capacity=8的内存,所以当需要存储的数据量大于最大容量8时,我们就要为数组elements再...
相信大家对于栈或多或少有一些了解,可能大多数人会告诉你栈是一种先进后出的数据结构。这其实说了跟没说一样(❁´◡`❁)!当然(last in,first out)...
我们可以把这段代码想象成一个动物园管理员(Zoo 类中的 main 方法)在管理动物。管理员有一个笼子(Animal 类型的数组),笼子里可以放各种动物(Dog...
?需要注意的是,array之所以能够检测数组越界读写,关键在于其重载的operator[]函数内部实现了对传入下标的边界检查机制。
上面我们看了直接插入排序有一些局限性它的效率取决于要排序的元素集合的顺序情况,所以希尔排序使用将数组分成若干小块的思想就优化了直接插入排序的局限。
通过概念不难发现顺序表它也是一个线性表,那就有线性表所对应的性质。那么线性表既然采用数组存储那么就说明它的底层就是一个数组,我们对于顺序表的操作就是对数组的操作...
看到结构体就想到了数组,为什么会想到数组呢?因为数组与其非常相似,下面我们用一张表格来看看结构体与数组的区别是什么:
可能你没有听过柔性数组,但它确实是存在的,在C99 中,结构中的最后⼀个元素允许是未知大小的数组,这就叫做『柔性数组』成员。
前言:经历了漫长的指针学习,终于能够开启新的内容了,本篇文章要讲的是字符函数与字符串函数。平时刷题的过程中我们总会遇到一些字符串相关的问题需要字符串函数来解决,...
前言:上期我们介绍了sizeof与strlen的辨析以及sizeof,strlen相关的一些笔试题,这期我们主要来讲指针运算相关的一些笔试题,以此来巩固我们之前...