
C语言
爱睡的梨
嵌入式软件开发工程师,乐于交友微zrchyl,熟悉mcu单片机底层驱动搭建和应用开发,熟悉ucosIII,FreeRT-thread,linux操作系统,熟悉linux内核裁剪驱动开发,以及应用层多线程多任务开发。
展开
-
C语言:冒泡排序算法的原理
每一轮遍历都会把一个最大(或最小)的元素放到正确的位置,因此需要进行多次遍历,时间复杂度为 O(n^2),其中 n 是要排序的元素数量。它重复地遍历要排序的列表,每次遍历都比较相邻的两个元素,如果它们的顺序不符合要求(比如要求从小到大排序,但两个元素的顺序是大于小),则交换这两个元素的位置,直到整个列表排序完成。冒泡排序是一种简单的排序算法,它多次遍历要排序的列表,每次遍历都将相邻的两个元素进行比较并交换,直到整个列表排序完成。比较相邻元素:从第一个元素开始,依次比较当前元素与下一个元素的大小。原创 2023-12-26 09:05:42 · 913 阅读 · 0 评论 -
C语言 for 循环的所有应用
for循环是一种强大的迭代结构,通过初始化、循环条件和增量控制,能够有效地进行重复操作。通过合理使用for循环,可以处理大量重复性的任务。当使用for循环时,它提供了一种在特定条件下重复执行代码块的方法。原创 2023-12-25 18:09:03 · 1041 阅读 · 0 评论 -
FLASH,SRAM与Program Size: Code=46286 RO-data=1698 RW-data=560 ZI-data=39960关系
在这种情况下,它仍然属于RW-data,可以被读取和写入。常量适用于那些在编译时就已经确定并且在整个程序中不会改变的值,而只读变量则更适合表示在程序运行时期间不能修改的值,但需要更多类型检查和更精确的定义。在上面的例子中,readOnlyVar 被声明为一个只读变量,它的值被初始化为10,并且在程序的其余部分不能再被修改。在典型的C语言中,全局变量(比如 int globalVar)既可以属于RW-data(可读写数据),也可以属于ZI-data(零初始化数据),这取决于变量是否在定义时被显式地初始化。原创 2023-12-22 16:52:01 · 1488 阅读 · 0 评论 -
C语言中所有符号
关系运算符:==(等于)、!=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)位运算符:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)其他运算符:&(取地址)、*(指针解引用)、sizeof(返回数据类型大小)算术运算符:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模)赋值运算符:=(赋值)、+=(加等于)、-=(减等于)等等。逻辑运算符:&&(逻辑与)、||(逻辑或)、!#ifdef、#endif、#ifndef(条件编译)原创 2023-12-19 15:01:07 · 2867 阅读 · 1 评论 -
C语言:什么是枚举类型
在这个例子中,enum Weekday 定义了一个名为 Weekday 的枚举类型,其中包含了一周的每天。每个标识符(比如 Monday、Tuesday)都代表了一个整数值,默认情况下从0开始递增。您也可以显式地为枚举中的标识符赋值,比如 enum Weekday { Monday = 1, Tuesday, …} 来指定从1开始的递增值。您可以声明枚举类型的变量,并将其设置为枚举中的某个值。最后,您可以使用 switch 语句根据枚举的值执行不同的操作。C语言中的枚举类型允许您定义一组命名的常量。原创 2023-12-07 08:51:44 · 62 阅读 · 1 评论 -
c语言:什么是数组
多维数组是C语言中的数组的一种扩展形式,它允许以表格或矩阵的形式存储数据。多维数组实际上是数组的数组,允许在每个维度上有不同的大小。C语言中的数组是一种存储同类型数据元素的集合,它提供了有效地存储和访问一系列数据的机制。多维数组在表示矩阵、图像和其他二维数据结构时非常有用,但需要小心避免数组越界访问以及正确理解多维数组在内存中的存储方式。多维数组在内存中是连续存储的,数组名是指向数组首元素的指针。数组作为参数传递给函数时,实际传递的是指向数组首元素的指针。数组中的元素是连续存储的。声明和初始化多维数组。原创 2023-12-07 09:13:45 · 148 阅读 · 1 评论 -
循环链表的理解
循环链表的特点是,最后一个节点的 next 指针指向链表的头部节点。这使得遍历链表时,可以从任何节点开始,并在回到头部节点后停止。并且这个头部节点是第一个传进来的作为头部节点,后续都默认是这个节点为头就是。这个示例中的循环链表由结构体 Node 表示,每个节点包含一个整数数据和一个指向下一个节点的指针。insertNode 函数用于向循环链表中插入新节点,displayList 函数用于显示循环链表的内容。循环链表是一种特殊的链表结构,其尾部节点指向链表的头部节点,形成一个闭环。原创 2023-12-06 09:52:12 · 197 阅读 · 1 评论 -
指针和数组的相关内容
是一组相同类型的元素集合,这些元素在内存中是连续存储的。数组的每个元素都可以通过索引访问,这个索引通常是一个非负整数,表示元素在数组中的位置。指针可以指向内存中的任何数据,包括数组的第一个元素。通过指针,可以间接访问或修改存储在特定内存位置的数据。指针和数组在程序中的使用可以带来很大的灵活性和效率,但也需要小心管理内存和确保正确的指针操作,以避免出现错误和未定义的行为。在很多情况下,数组名本身就是指向数组第一个元素的指针。指针和数组在编程中是密切相关的概念,它们可以在许多编程语言中使用。原创 2023-12-05 08:57:43 · 40 阅读 · 0 评论 -
C语言:链表的理解
这个例子创建了一个包含三个节点的单向链表,每个节点存储一个整数。它首先分配内存来创建节点,然后通过指针连接这些节点以形成链表。随后,它遍历链表并打印每个节点的数据,并最终释放节点的内存。链表是一种基本的数据结构,它由节点组成,每个节点包含两部分:数据和指向下一个节点的指针。链表的优势在于其动态的特性,允许在运行时动态地分配内存来存储数据。这只是链表的基础概念和实现示例。在实际应用中,链表可用于实现更复杂的数据结构和算法,并且有多种类型的链表(单向链表、双向链表、循环链表等)适用于不同的需求。原创 2023-12-04 11:15:29 · 59 阅读 · 1 评论 -
指针和动态内存分配的应用案例
这些例子展示了C语言中指针和动态内存分配的实际应用,涵盖了数组、字符串和数据结构(链表)的使用。函数在运行时动态分配整数数组,并在使用后释放内存以避免内存泄漏。来动态创建链表节点,以及如何在程序结束时释放节点的内存以避免。函数动态分配字符串,并在需要时重新分配内存以容纳更多内容。-文章会不断的更新,希望能够帮助到需要的人。这个示例展示了如何使用指针和。csdn原创者:爱睡的梨。这个示例演示了如何使用。此示例演示了如何使用。原创 2023-12-04 10:49:37 · 165 阅读 · 1 评论 -
C语言:函数指针分析与理解
函数指针在C语言中是一种强大的工具,允许以灵活的方式处理函数调用,提高代码的可重用性和扩展性。通过熟悉和实践函数指针的使用,你可以更好地理解和利用C语言中这一重要的概念。,它允许你在运行时动态地选择要调用的函数。函数指针可以作为参数传递给其他函数,也可以用于创建函数指针数组或作为结构体的成员。csdn原创者:爱睡的梨。C语言中的函数指针是。原创 2023-12-02 14:54:28 · 54 阅读 · 1 评论 -
指针和动态内存分配解读
指针和动态内存分配在C语言中是非常重要的概念,特别是当需要在运行时分配和释放内存空间时。动态内存分配允许程序在运行时请求所需的内存空间,并在不再需要时释放它,这对于灵活性和效率都非常有帮助。动态内存分配为C语言提供了灵活性和效率,但同时也需要谨慎使用。正确地分配和释放内存对于避免潜在的内存错误非常重要。(csdn原创者:爱谁的梨)原创 2023-12-02 13:15:57 · 181 阅读 · 0 评论 -
C语言指针的理解
【代码】C语言指针的理解。原创 2023-12-01 12:30:32 · 452 阅读 · 0 评论