C
文章平均质量分 59
C
半只因
这个作者很懒,什么都没留下…
展开
-
C 排序算法,查找算法
排序算法1. 概念把一组数字按照某种指定的顺序排列好共性排序算法通常需要分很多次重复进行, 每次只负责处理一个数字为了处理一个数字可以有两种做法首先选择一个数字然后根据这个数字去找他应该放在那个位置首先选择一个位置然后根据这个位置去找适合放在这个位置里的数字通过不断调整两个数字间的顺序最终把一个数字放在合适的位置里2. 冒泡排序算法从所有数字的两端选择一个位置作为选定位置从选定位置的另一端开始不断对两个相邻数字进行顺序调整, 最终把合适的数字放在选定位置里原创 2020-10-16 18:14:10 · 218 阅读 · 0 评论 -
C 数据结构 之 树, 二叉树
树1. 概念如果线性链式物理结构里的每一个节点可以指向其他多个节点就构成了树状链式物理结构用来管理树状链式物理结构的数据结构就叫做树2. 特点树的节点分为很多层, 不同层之间符合线性规则树的最上面一层只能有一个节点, 叫做根节点根节点可以代表整棵树如果两个节点存在直接的联系就表示他们之间存在父子关系, 靠近根节点的叫父节点, 另一个叫子节点任何节点最多只能有一个父节点(根节点没有父节点)3. 二叉树特点如果一个树里每个节点最多只能有两个子节点就叫二叉树二叉树里的任何一个节点原创 2020-10-15 10:19:04 · 189 阅读 · 0 评论 -
C 数据结构 之 链表
链表1. 概念用来管理 线性链式物理结构 功能的数据结构,以后在程序中使用线性链式物理结构就不需要写代码操作存储区了,直接使用链表提供的各种功能就可以啦。2. 实现方法typedef struct node { // node 来代表线性链式物理结构种的节点 int val; // 用来记录数字的成员变量 struct node *p_next; // 用来指向下一个节点的成员变量 } node;typedef struct { node原创 2020-10-12 16:24:50 · 164 阅读 · 0 评论 -
C 数据结构 之 队列
队列1. 使用方法每次只能加入一个数字,每次只能拿出一个数字队列里的数字有前后顺序,先进的数字在前,后进的数字在后每次从队列里获得的数字一定是最先放进去的数字(先进先出)2. 实现方法typedef struct { int buf[size]; //存放数字的数组 int head; //第一个数字所在的下标(如果队列空则 head 应该等于 tail ) int...原创 2020-03-12 19:24:56 · 299 阅读 · 0 评论 -
C 数据结构 之 栈
数据结构1. 组成一组存储区用来存放数字一组函数用来操作存储区2. 栈 (最简单的数据结构)2.1 特点每次只能加入一个数字,每次只能拿出一个数字。栈里的数字有前后顺序,先进入的数字在最前,后进入的数字在最后。每次从栈里获得的数字一定是最后放进去的数字(后进先出)2.2 实现方法可使用宏 SIZE,在编译的时候临时决定栈里需要多少个存储区有了数字个数 qty,随...原创 2020-03-11 14:20:08 · 191 阅读 · 2 评论 -
C 数据结构 之 线性链式物理结构
数据结构1.概念:存储数字和使用数字的方法2.数字间的关系2.1 逻辑结构: 描述现实世界里数字之间的关系集合结构:所有的数据可以被看做是一个整体。(一箱菜里的所有菜)线性结构:可以用一条线把所有的数据穿起来。(公交线路的所有站点)树状结构:所有的数字是从一个数字扩展出来的,扩展规则一致。(家谱)网状结构:任何两个数字之间都可以有直接的联系,不同数字之间的联系无关。(铁路网)...原创 2020-02-22 19:31:17 · 322 阅读 · 0 评论 -
C 文件操作
文件操作1. 文件概念用来长期存放数据的工具文件里都是采用二进制记录数据文件分为文本文件(每个字节都对应一个字符)和二进制文件(文本文件可以看做是特殊的二进制文件)2. 文件的操作方式文本方式(只能操作文本文件)二进制方式(可以操作所有文件)3. 基本操作1.打开文件 fopen2.使用文件 fread/fwrite3.关闭文件 fclose//文件操...原创 2020-02-17 18:03:30 · 112 阅读 · 0 评论 -
C 动态内存分配
动态内存分配1. 概念程序运行时临时分配存储区的方法2. 优点临时决定需要分配的存储区数量生命周期自己决定以前讲声明变量,在变量生命周期开始的时候,计算机为变量分配存储区,生命周期结束的时候,计算机把变量的存储区收走。而动态内存分配是我们需要的时候,要求计算机为我们分配存储区,并且计算机不会主动把存储区收走3. 使用方法malloc 函数可以动态分配一组连续的字节...原创 2020-02-07 18:08:09 · 244 阅读 · 0 评论 -
C 二级指针,函数指针
二级指针1. 概念用来记录一级指针类型存储区的地址2. 声明方法需要在二级指针变量名称前使用 **3. 使用方法二级指针前加两个 ** 可以表示它指向的一级指针再指向的普通存储区二级指针前面加一个 * 可以表示它指向的一级指针#include <stdio.h>int main() { int val = 0; int *p_va...原创 2020-02-06 21:56:06 · 929 阅读 · 0 评论 -
C 枚举 联合
枚举1. 概念用来创建新数据类型的工具2. 声明方法使用enum关键字包含多个名称enum 枚举名称 {名称1, 名称2, ....};3. 使用方法每个枚举名称都可以作为整数使用傻逼视频说了个几把,我也不知道我写的这是啥#include <stdio.h>int main() { //enum season 合起来可以做类型...原创 2020-02-06 03:06:10 · 129 阅读 · 0 评论 -
C 结构体
结构体1. 概念创建新类型的工具结构体类型的存储区里可以包含多个不同类型的子存储区,每个子存储区可以存放一个数字,甚至也可以是结构体类型的存储区2. 声明方法使用 struct 关键字声明包含多个成员变量声明语句struct 结构体类型名称 { 成员变量声明语句};#include <stdio.h>//结构体声明里虽然包含了多个变量声明语句,但...原创 2020-02-05 01:53:54 · 171 阅读 · 0 评论 -
C 多文件编程
多文件编程1. 概念把程序内容分散在多个源文件里2. 基本规则一个文件里可以包含多个函数一个函数只能属于一个文件3. 改造步骤1. 把程序的函数分别写在多个不同的源文件里(主函数通常单独占一个文件)2. 为每个源文件编写配对头文件(以 .h 做扩展名),头文件至少要包含源文件所有函数的声明,理论上所有不分配内存的内容都可以写进头文件,(只包含主函数的源文件不需要配对...原创 2020-02-04 02:31:37 · 337 阅读 · 0 评论 -
C 预处理指令
预处理指令1. #define 预处理指令( 用来定义宏)1.1 宏可以用来给数字起名字除了在程序里定义宏代表的数字,也可以在编译命令里面使用-D选项,就可以指定宏所代表的数字#define PI 3.14f //用宏给3.14f这个数字起名字叫πgcc test2.cc -DPI=3.14f如果编写程序时需要用到某个数字但是又不知道它的具体数值,就可以在程序里...原创 2020-02-03 00:55:31 · 155 阅读 · 0 评论 -
C 字符串
字符串1.概念一组连续的字符必须以\0字符做结尾存放在一组连续的字符类型存储区里2.分类(字符串存储方式不同)字符串字面值一对双引号中间夹杂着一堆字符“asjkdh”, 编译器在编译时会自动在最后一个字符后面加 \0, 并且会把这个字符串字面值替换成第一个字符所在存储区的地址,字符串字面值编译完以后其实是一个地址数据字符串字面值内容在程序执行过程中不能修改,所以如...原创 2020-02-01 01:33:16 · 367 阅读 · 0 评论 -
C 指针
指针1.概念记录地址数据的变量2.声明int *p_val;int 表示指针记录整数类型存储区的地址(这个指针指向了一个整数类型的存储区)*表示这个变量是一个指针如果一条语句里声明了多个指针变量就需要在每个指针变量名称前加*可以用typedef关键字给指针类型起别名,别名可以用来声明指针变量#include <stdio.h>//给指针类型起来一...原创 2020-01-30 21:59:42 · 1222 阅读 · 0 评论 -
C 生命周期和作用域
生命周期和作用域变量分类局部变量 (声明在某个函数里)和 全局变量(声明在所有函数外面)静态变量 和 非静态变量变量的使用范围作用域:可以使用这个变量的所有语句的总和生命周期:某个变量能够使用的时间范围非静态局部变量作用域是包含函数里面的所有语句生命周期是函数某一次执行的时间类似于别墅里的家具(整个程序一个大型住宅区,里面若干个文件比作若干个小区,函数相当...原创 2020-01-29 03:21:21 · 559 阅读 · 0 评论 -
C 函数
函数1.概念用来代表一组相对独立的语句2.函数和变量之间的关系不可以跨函数使用变量不同函数里的变量可以重名如果一个函数多次运行则它里面的变量每次运行都可能对应不同的存储区使用volatile关键字声明的变量可以被其他程序修改内容3.函数调用函数调用过程中通常伴随着数据传递数据传递既可以从调用函数到被调用函数也可以从被调用函数到调用函数从调用函数向被调用函数只能传递一...原创 2020-01-28 22:41:09 · 216 阅读 · 0 评论 -
C 数组
一维数组1.概念:表内存里一组连续的同类型存储区可以把多个存储区合并成一个整体。2.数组声明:int arr[10];类型名称int表示数组里所有元素的类型名称arr是数组名称整数10表示数组里有10个存储区,(存储区称为数组里的元素)数组里的元素个数不可以改变3 初始化int arr[3] = {1, 2, 3}如果初始化数据比元素个数多就忽略后面的初始化数据,...原创 2020-01-25 23:06:12 · 111 阅读 · 0 评论 -
C 输入输出缓冲区
1. 输入缓冲区2. 输出缓冲区scanf 在获取键盘的输入之前也会把输出缓冲区的内容显示在屏幕上。原创 2021-01-26 12:07:18 · 84 阅读 · 0 评论 -
C 二进制, 八进制, 十六进制
二进制1. 二进制和十进制的转换1.1 非负二进制 转 十进制计算机里只能记录以二进制表示的数字因为数字需要记录在内存里,而内存是有大量字节构成的,意味着内存的数字必须要记录在字节里,而一个字节被分成8段,每一段只能记录一个0或者1.所以必须要把数字转为成2进制的表示方式才能放在字节里.1.2 非负十进制 转 二进制12这个数字转换成2进制以后,是由8个数位构成的,因为12是偶数,所以对应的2进制最后一位一定是012除以2以后,整数部分是6,. 对这8个二进制树也除以2(减少一个数位原创 2020-12-23 15:25:55 · 921 阅读 · 0 评论 -
C 数据类型
1. 有符号类型既包含非负数又包含负数整数类型 int和长整数类型完全一样字符类型 char包含256个不同的整数,每个整数可以代表一个字符。可以在程序中以字符的方式写(两个单引号中间加个字符),然后计算机会把它替换成相应的整数存放在内存里. 也可以直接在程序中写字符对应的整数.ASSIC码表列出了所有整数和字符之间对应的关系‘a’ 97‘A’ 65‘0’ 48所有小写字母对应的ASSIC码是连续的,a最小z最大,同理大写字母,和阿拉伯数字‘d’ - ‘a’ 计算原创 2020-12-22 20:03:23 · 190 阅读 · 0 评论