C语言

C语言中分支和循环的6种实现形式总结

目录 真假 1.if语句 2.switch语句 3.while循环 4.for循环 5.do while循环 6.goto语句 总结 C语言时一门结构化的程序设计语言,本篇博客主要讲解C语言中的分支和循环的实现形式。分别是: if语句。 switch语句。 while循环。 for循环。 »

【享元设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 享元模式(Flyweight Pattern),是一种结构型设计模式。主要用于减少创建对象的数量,以减少内存占用和提高性能。它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 当程序需要生成数量巨大的相似对象时,可能对内存有大量损耗 »

letjs

逍遥自在学C语言 | 位运算符&的高级用法

前言 在上一篇文章中,我们介绍了&运算符的基础用法,本篇文章,我们将介绍& 运算符的一些高级用法。 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、位掩码 位掩码是一种用于按位 »

C语言堆排序经典算法TopK问题解析

目录 问题描述: 快速排序 TopK 问题描述: 从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题 什么是TopK,就是找到一个无序队列中的k个最大数。 TopK的经典算法是堆排序,这里用快排的思想解决。 先上一个快排的代码: 快速排序 priva »

C语言volatile关键字的作用与示例

目录 写在前面 volatile和内联汇编的volatile的选择 写在前面 版本信息:Linux操作系统,x86架构,Linux操作系统下GCC9.3.1版本。GCC 9.3.0手册。 看了外面很多写volatile的文章,笔者算是认为“乱七八糟”,根本没有任何论证就在下定义,所以笔者 »

C语言之详解静态变量static

目录 关键字static     修饰局部变量 运行结果: 调用静态变量static 运行结果: 结论:  修饰全局变量  代码执行: 代码执行: 结论:  修饰函数 结论: 关键字static     在C语言中: static是用来修饰变量和函数的 static主 »

C语言数据结构的时间复杂度和空间复杂度

目录 一、数据结构前言         1.什么是数据结构:         2.什么是算法?         3.如何学好算法和数据结构        1.多写代码(写到吐) 2.勤于思考多画图 二、算法的时间复杂度和空间复杂度 1.算法效率 1.1如何衡量一个算法的好坏  1.2算 »

利用C语言实现任务调度的示例代码

目录 前言 任务调度模式结构 分片 轮询 调度实现 结语 前言 这个任务调度模块的实现是形成于毕设项目中的,用在STM32中,断断续续跨度2个月实现了一些基本功能,可能后面再做其他项目时会一点点完善起来,也会多学习相关知识来强化模块的实用性和高效性,毕竟用自己自主实现出来的功能还是 »

自用纯C语言实现任务调度(可用于STM32、C51等单片机)

前言   这个任务调度模块的实现是形成于毕设项目中的,用在STM32中,断断续续跨度2个月实现了一些基本功能,可能后面再做其他项目时会一点点完善起来,也会多学习相关知识来强化模块的实用性和高效性,毕竟用自己自主实现出来的功能还是蛮舒心的。 任务调度模式结构   整体上的结构属于线性结构,结合链表和定 »

pie-o

C语言归排与计排深度理解

归并排序:是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 1. 基本思想 归并排序是用分治思想, »

C语言实现对文件进行操作的示例详解

目录 前言 文件指针 文件的打开和关闭 文件的打开方式 文件读写函数 二进制方式存储文件 对文件进行拷贝 文件随机读写函数 文件缓冲区 前言 文件操作 在运行程序的时候,此时数据是存放在内存中,当程序退出的时候,程序中的数据自然就不存在了,等下次运行程序的时候,数据又得重新录入,我们可以 »

C语言带你学会位段相关知识

目录 一、什么是位段 二、位段的内存分配 三、位段的跨平台问题 四、位段的应用 五、总结与提炼 一、什么是位段 位段的声明和结构是类似的,有两个不同: 位段的成员必须是 int、unsigned int 或signed int 位段的成员名后边有一个冒号和一个数字 在下面,我分别写 »

一文带你了解C语言中static关键字的3个作用

目录 1.修饰局部变量 2.修饰全局变量 3.修饰函数 总结 static这个关键字是“静态”的意思,在C语言里有3个作用。分别是: 1.修饰局部变量,该局部变量称为静态的局部变量。 2.修饰全局变量,该全局变量称为静态的全局变量。 3.修饰函数,该函数称为静态的函数。 1.修饰局部 »

逍遥自在学C语言 | 位运算符的基础用法

前言 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、构成和表达方式 位运算符是一组用于在二进制数之间进行操作的运算符 运算符 名称 示例 & 位与 a && »

C语言中宏和函数的9个区别详解

目录 1.代码长度 2.执行速度 3.操作符优先级 4.带有副作用的参数 5.参数类型 6.调试 7.递归 8.命名约定 9.其他 总结 C语言中的宏和函数是非常相似的,它们都可以完成类似的功能。比如,想要求2个数的较大值,使用宏的写法是: // 宏的定义 #define MAX(x, y »

你知道C语言中#和##表示的意义吗

目录 1.# 2.## 3.总结 如标题,这篇文章会讲解C语言中的#和##是啥意思。我相信,大部分朋友应该都没怎么用过,这两个玩意的使用条件相当苛刻。 #用于把一个宏参数直接转换为相应的字符串。 ##用于连接2个标识符。 1.# 先做一个小铺垫。C语言中允许把一个字符串拆成2个字符串 »

逍遥自在学C语言 | 逻辑运算符

前言 一、人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 二、构成和表示方式 逻辑运算符是用来比较和操作布尔值的运算符 C语言中的逻辑运算符主要有3个,如下表所示 运算符 名称 示例 描述 »

C语言实现常见进制转换的示例代码

目录 前言 一、十进制数转换为二进制数、八进制数 二、十进制转换为十六进制 三、二进制数、八进制数转换为十进制数 四、十六进制数转换为十进制数 前言 生活中最常见的进制是十进制,而有一类编程题会要求将十进制转换为其他进制,本篇博客将主要讲述C语言中常见的几类进制转换问题。 一、十进制数 »

【过滤器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern),是一种结构型模式。这种模式允许使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来,它结合多个标准来获得单一标准。 例子将创建一个 Person 对象、Criteria 接口和实现了该接口的实 »

letjs

C语言实现将字符串转换成整数

目录 准备工作 1.NULL指针 2.空字符串 3.空格 4.正负号 5.非法字符 6.越界 测试 总结 这是一个很有意思的问题。请不要把这个问题想的太简单了,考虑问题时应该尽可能的全面一些。请先思考并且实现这个函数,再来看讲解。 分析一下:函数名是StrToInt,那么可以这么调用: i »