标签: c

找到 28 篇相关文章

线程池的原理 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发得线程数量很多,并且每个线程都是执行一个时间很短得任务结束了,这样频繁得创建线程会降低系统的效率,因为频繁创建线程和销毁线程需要时间。 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都可以默认得堆栈大小,以默认优先级运...

linux基础

源码下载路径: 刘同学数据库 创建数据库 使用.open 创建数据库(数据库是唯一的),创建后再次使用.open即为打开数据操作。 示例: ``` .open test.db ``` 创建表 语法 CREATE TABLE的基本语法: ``` CREATE TABLE table_name( column1 datatype PRIMARY KEY(one or mor...

common

描述 介绍了常用的几种排序算法:**冒泡排序、选择排序、插入排序、快排、希尔排序**、归并排序、堆排 为什么后面两个没有加租?因为目前的我还没发熟练使用 后期如果有时间会出分析讲解视频 **加油!愿祖国强盛**😊😊😊 冒泡排序 冒泡排序原理 从第一个元素开始比较相邻的元素,如果顺序错误则调换顺序,继续往下一一对比,直到序列末尾。 冒泡排序分析 冒泡排序的核心就是:**...

structure

速通回忆 这里是完整的代码和运行结果,可以直接选择看下面代码的思路去快速回忆哈夫曼树,或从下面理论部分开始学习 ``` #include "stdio.h" #include "stdlib.h" /* 哈夫曼树结点的结构体 */ typedef struct { int weight; /* 权重 */ int parent; /* 父母结点下标 */ int l...

c

位运算符C语言提供了六种位运算符 - &:按位与 - !:按位或 - ^:异或 - ~:取反 - <<:左移 - \>>:右移 按位与运算 **其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0** 按位与运算通常用来对某些位清0 按位或运算 **其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就...

c

速通回忆 **下面是一个二叉树的演示:包括二叉树的类型构造,二叉树存放一个数值,二叉树的遍历(先序遍历、中序遍历、后序遍历)** 你可以选择直接看这个演示代码回忆之前学过的内容,或者看下面的介绍进行二次学习 ``` #include "stdio.h" #include "stdlib.h" /* 树的元素结构体,结点元素、左子树、右子树 */ typedef struct tree_n...

structure

**没事干,写个树玩玩,真正的“撸树”** 在Ubuntu终端、VScode终端显示 代码 ``` #include "stdio.h" int main(){ int high = 5; //层高 int count = 5; //层数 int start; //每层开始*数 int...

c

速通回忆 **如果你之前学过链表**,可以直接看我下面的这个项目,实现了下面专题中所有内容; **如果你是个新手**,**_建议先不要看下面这个项目_**,先好好看一下下面每一个部分的代码思路,并尝试自己去写一下 ``` /* * 功能:单向循环链表操作 * 作者:此乃刘同学(www.liustu.com.cn) */ #include "stdio.h" #include...

structure

速通回忆 **下面是一个链表栈的演示**,**数组栈的演示放在最后面** 如果你不知道什么是链表栈,建议先别看这个“速通回忆”,先看一下理论部分 **如果你之前学过链表**,可以直接看我下面的这个项目,实现了下面专题中所有内容; **如果你是个新手**,**_建议先不要看下面这个项目_**,先好好看一下下面每一个部分的代码思路,并尝试自己去写一下 ``` /* * 功能:链表栈操作...

structure

速通回忆 有基础可以直接通过下面代码回忆一下即可😊(循环队列在后面) ``` #include "stdio.h" #include "stdlib.h" /* 数据结构体 */ typedef struct node{ int data; struct node *next; }node; /* 队列结构体 */ typedef struct queue{ n...

structure

**本文章分为:内存结构、大小端存储、不同数据类型的存储方式** 内存结构 C语言中,对内存进行了划分。总共分为:栈区、堆区、代码区、常量区、全局数据区。 其中全局数据又可细分为:初始化静态数据区和未初始化静态数据区 栈区 - **存放函数执行时的局部变量、函数参数和函数返回值** - 栈区的**大小由操作系统决定** - 函数之间的调用是通过栈实现的,**调用函数就入栈,函...

c

速通回忆 **如果你之前学过链表**,可以直接看我下面的这个项目,实现了下面专题中所有内容; **如果你是个新手**,**_建议先不要看下面这个项目_**,先好好看一下下面每一个部分的代码思路,并尝试自己去写一下 ``` /* * 功能:单链表操作 * 作者:此乃刘同学(www.liustu.com.cn) */ #include "stdio.h" #include "stdl...

structure

速通回忆 **如果你之前学过链表**,可以直接看我下面的这个项目,实现了下面专题中所有内容; **如果你是个新手**,**_建议先不要看下面这个项目_**,先好好看一下下面每一个部分的代码思路,并尝试自己去写一下 ``` #include "stdio.h" #include "stdlib.h" #include "string.h" /* 学生数据结构体 */ typedef str...

structure

算法基础 算法的特性: - **输入输出**:**_算法具有零个或者多个输入,同时,算法具有至少一个的输出。_** - **确定性**:**_算法的每一步都具有确定的含义,无二义性_** - **有穷性**:**_每个算法需要在有穷的时间内完成_** - **可行性**:**_一个算法是可以被执行的_** 算法设计要求 - **正确性**:**_能够满足预先指定的功能与性能的需求_...

structure

const与static都是C语言中的关键字,这两个关键字是比较难以彻底理解的,所以写一篇文章专门介绍这两个关键字! const理论 如果一个变量被const修饰,那么它的值就不能再被改变;这个功能有点像宏定义的#define,但是它存在肯定有它存在的道理,相比预处理,const有以下有点: - 预编译指令只是对值进行简单的替换,不能进行**类型检查** - 可以保护被修饰的东西,防止意...

c

函数概述 **函数是C源程序的基本模块**,通过对**函数模块的调用**实现特定的功能。C语言不仅提供了极为丰富的库函数(如Turbo C,MS C都提供了三百多个库函数),还允许用户建立自己定义的函数 C语言中从不同角度对函数进行分类: - 从函数定义的角度看 - 库函数 - 用户定义函数 - 函数中有函数和过程两种功能 - 有返回值函数...

c

预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作 预处理是C语言的一个重要功能,它由预处理程序负责完成;当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译 C语言提供了多种预处理功能,如**宏定义、文件包含、条件编译**等 宏定义 无参宏定义 其定义的一般形式为:     #define  标识符  字符...

c

地址指针的基本概念 为了正确地访问这些内存单元,必须为每个内存单元编上号。根据**一个内存单元的编号(地址)**即可准确地找到该内存单元;所以通常也把**内存单元的编号(地址)称为指针** 在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针 变量的指针和指向变量的指针变量 变量的**指针**就是变量的**地址**...

c

对于整数来说,要判断其是否等于0,只需写if(a==0)即可,但是浮点数该如何比较呢? 当我们给浮点数赋值123时,输出结果为123.000000 ``` #include "stdio.h" int main(){ float a = 123; printf("%f\n",a); return 0; } ``` 当我们使用%.50f标识double类型时就...

c

****C语言中一共32个关键字,看这一篇就够了!!!**** 数据类型关键字 - unsigned/signed: 用于修饰整数类型; 另外char共有3种不同的类型:char、unsigned char、signed char;其中**char才是真正的字符型**,unsigned和signed是用来声明数值的 - struct: struct关...

c

关系运算符和表达式 比较两个量的运算符称为关系运算符 关系运算符及其优先级 C语言包括“<”、“>”、“>=”、"<="、"!="、"==" 关系运算符均为双目运算符,其结合性为左结合。**关系运算符的优先级低于算数运算符**,**高于赋值运算符** 其中<、<=、>、>=的优先级相同,!=、==的优先级相同 关系表达式 一般形式为:**表达式 关系运算符 表达式**;关系表达式允...

c

**按顺序排序的同类数据元素的集合称为数组**;在C语言中,数组属于构造数据类型,这些数据元素可以是基本数据也可以是构造类型,可以根据数组元素的类型不同分为数值数组、字符数组、指针数组、结构体数组等。 一维数组的定义和引用 一维数组的定义 在C语言中使用数组必须先进行定义,一维数组的定义格式为:类型说明符 数组名\[常量表达式\] - 类型说明符是任一种基本数据类型的构造数据类型 -...

c

数据类型 在程序中所有变量都需要先定义后使用。对变量的定义包括:**数据类型,存储类型,作用域** 数据类型分为:**基本类型、构造类型、指针类型、空类型**。 基本类型 基本类型的最主要特点是,**其值不可以在分解成其他类型。** 构造类型 构造类型的**值可以进行分解**,分解成一个或多个基本类型或构造类型。 C语言中常见的构造类型有:**结构体、共用(联合)体、数组**...

c

C语言中程序可以分为三种基本结构:顺序结构、分支结构、循环结构。 C语句概述 C语言的执行部分是由语句组成的,C语句可以分为 - 表达式语句:计算表达式中的值 - 函数调用语句:调用函数 - 控制语句:控制程序的流程 - 条件判断语句:if-else语句 switch语句 - 循环执行语句:for、while、do-while - 转向语...

c

题目来源: 问题 给你一个数组 `nums` 和一个值 `val`,你需要 **** 移除所有数值等于 `val` 的元素。元素的顺序可能发生改变。然后返回 `nums` 中与 `val` 不同的元素的数量。 假设 `nums` 中不等于 `val` 的元素数量为 `k`,要通过此题,您需要执行以下操作: - 更改 `nums` 数组,使 `nums` 的前 `k` 个元素包含不等于 `...

c

题目来源: 问题 给你一个数组 `nums` 和一个值 `val`,你需要 **** 移除所有数值等于 `val` 的元素。元素的顺序可能发生改变。然后返回 `nums` 中与 `val` 不同的元素的数量。 假设 `nums` 中不等于 `val` 的元素数量为 `k`,要通过此题,您需要执行以下操作: - 更改 `nums` 数组,使 `nums` 的前 `k` 个元素包含不等于 `...

c

题目来源: 问题 给你两个按 **非递减顺序** 排列的整数数组 `nums1` 和 `nums2`,另有两个整数 `m` 和 `n` ,分别表示 `nums1` 和 `nums2` 中的元素数目。 请你 **合并** `nums2` 到 `nums1` 中,使合并后的数组同样按 **非递减顺序** 排列。 **注意:**最终,合并后数组不应由函数返回,而是存储在数组 `nums1` 中...

c

在Linux中cal命令显示系统月历与日历。 使用C语言复复刻“cal”命令的显示。 main.c ``` #include <stdio.h> #include <stdlib.h> #include <time.h> // 获取指定日期是星期几 int getWeekday(int year, int month, int day) { if (month < 3) {...

c