
c语言笔记
文章平均质量分 76
福地洞天
这个作者很懒,什么都没留下…
展开
-
【C语言】指针进阶
目录1. 指针是什么2. 指针和指针类型3. 野指针4. 指针运算5. 指针和数组6. 二级指针7. 指针数组1.指针是什么?指针是什么? 指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址,口语中说的指针通常指的是指针变量理解内存指针变量我们可以通过&(取地址操作符)取出一个变量在内存中的地址,并把这个地址存放在一个原创 2023-02-25 02:06:17 · 417 阅读 · 0 评论 -
【数据结构】八大排序
来自历史的智慧,经典永流传。原创 2022-04-23 23:38:45 · 10609 阅读 · 27 评论 -
【数据结构】二叉树经典习题
【数据结构】二叉树经典习题原创 2022-04-17 14:44:32 · 3601 阅读 · 7 评论 -
【数据结构】二叉树--链式结构
【数据结构】二叉树--链式结构原创 2022-04-17 12:24:43 · 1118 阅读 · 8 评论 -
【数据结构】二叉树--堆排序
二叉树 -- 堆排序优化原创 2022-04-10 18:01:36 · 1743 阅读 · 7 评论 -
【数据结构】详解二叉树--堆 看这篇就足够了
【数据结构】二叉树--堆 看这篇就够了原创 2022-04-09 20:31:39 · 1353 阅读 · 6 评论 -
【数据结构】栈和队列典例--纯C
栈和队列典例原创 2022-04-06 16:27:32 · 1724 阅读 · 8 评论 -
【数据结构】队列
队列原创 2022-04-06 14:26:49 · 640 阅读 · 0 评论 -
【线性表】顺序表和链表的优缺点
【线性表】顺序表和链表的优缺点原创 2022-03-27 11:58:32 · 3570 阅读 · 0 评论 -
【数据结构】 详解栈
【数据结构】详解栈原创 2022-03-27 01:15:23 · 1337 阅读 · 6 评论 -
链表典例二
三:三:基本思路:1)因为链表非空,所以不用断言2)使用快慢指针为最优解,定义两个指针fast 和 slowfast一次走两步,slow一次走一步。3)分情况i若链表长度为奇数时此时返回slow即为所求ii若为偶数时可见,当fast指向为空时,slow的位置即为所求。代码展示/** * Definition for singly-linked list. * struct ListNode { * .原创 2022-03-23 23:57:31 · 760 阅读 · 0 评论 -
线性表之双向带头循环链表
准备工作:创建结构体指针typedef int LTDataType;typedef struct ListNode{ LTDataType data; struct ListNode* next; struct ListNode* prev;}LTNode;1.创建一个新的节点基本思路:malloc节点,判断节点是否创造成功。LTNode* BuyLTNode(LTDataType x){ LTNode* newnode = (LTNode*)malloc(size原创 2022-03-22 23:46:30 · 767 阅读 · 0 评论 -
线性表之单链表
链表1.链表的概念及结构概念:连表示一种屋里存储结构上的非连续,非吮吸的储存结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。物理上:1.链式结构在逻辑上是连续的,但在物理上不一定连续。2.现实中的节点一般都是从对上申请出来的。3.从对上申请空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续。2.链表的分类1.单向或者双向2.带头或者不带头3.循环或者非循环共计8种最常用的两种链表:无头单向非循环链表 和 带头双向循环链表..原创 2022-03-17 18:06:26 · 909 阅读 · 0 评论 -
线性表之顺序表
1.线性表定义:n个具有相同特性的数据元素的有限序列。常见的线性表:顺序表,链表,栈,队列,字符串。线性表在逻辑上是线性结构,但在物理上不一定是连续的,线性表在屋里上存储时,通常以数组和链式结构的形式储存。2.顺序表定义:顺序表时一段物理地址连续的储存单元一次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成增删查改。类似于数组。3.分类静态顺序表动态顺序表静态顺序表缺点:开小了不够用,开大了浪费空间。使用动态顺序表是较优解。4.接口实现原创 2022-03-13 22:50:00 · 1154 阅读 · 0 评论 -
解析空间复杂度
概念:空间复杂度是一个数学函数表达式,是对一个算法运行过程中临时占用储存空间大小的量度。空间复杂度计算的是变量的个数。可以使用大O渐近法。注意:函数运行时所需要的栈空间(储存参数。局部变量。一些寄存器信息等)在编译期间就已经确定好了,因此,空间复杂度主要通过函数在运行时显示申请的二外空间来确定。举个栗子:int fun(int* arr, int len){ int* tmp = (int*)malloc(sizeof(int) * len); //*** return x..原创 2022-03-13 10:55:48 · 1332 阅读 · 0 评论 -
解析时间复杂度计算
1.概念时间复杂度是一个函数,用于定量描述该算法的运行时间。算法中的基本操作执行次数,为算法的时间复杂度。举例://语句中count++;被执行多少次?void func(int N){ int count = 0; for(int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { count++; } } for (int k = 0; k < 2 * N; k++) { cou原创 2022-03-06 17:13:52 · 925 阅读 · 0 评论 -
C语言文件操作
目录1.为什么使用文件?2.什么是文件3.文件的打开和关闭4.文件的顺序读写5.文件的随机读写6.文本文件和二进制文件7.文件读取结束的判定8.文件缓冲区1.为什么使用文件?使用文件可以将数据直接存放到电脑的硬盘上,做到数据的持久化。维持数据持久化的方法有:把数据放在磁盘文件,存放到数据库等方式。2.什么是文件?磁盘上的文件是文件。在程序设计中,文件一般分为两种:程序文件,数据文件(从文件功能的角度来分类的).2.1程序文件包括源文件(原创 2022-02-25 18:31:27 · 327 阅读 · 0 评论 -
字符函数和字符串函数
目录求字符串长度strlen长度不限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatsrncmp字符串查找函数strstrstrtok错误信息报告strerror字符操作内存操作函数memcpymemmovememsetmemcmp求字符串长度strlen函数size_t strlen ( const char * str ); 注:1)字符串已经 '原创 2022-01-08 21:07:25 · 480 阅读 · 0 评论 -
数据在内存中的储存
目录1. 数据类型详细介绍2. 整形在内存中的存储:原码、反码、补码3. 大小端字节序介绍及判断4. 浮点型在内存中的存储解析1.数据类型详细介绍charshortintlonglong longfloatdouble布尔类型(C99引入)包含在<stdbool.h>头文件中—Bool专门用于表示真假的变量true - 1false - 0而C语言中0表示假,非0表示真,在C语言中,布尔类型没多少用处#include&..原创 2022-01-08 00:38:08 · 592 阅读 · 0 评论 -
【无标题】
目录1. 指针是什么2. 指针和指针类型3. 野指针4. 指针运算5. 指针和数组6. 二级指针7. 指针数组1.指针是什么?指针是什么? 指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址,口语中说的指针通常指的是指针变量理解内存指针变量我们可以通过&(取地址操作符)取出一个变量在内存中的地址,并把这个地址存放在一个原创 2021-11-27 11:22:25 · 215 阅读 · 0 评论 -
C语言指针1.0
目录1. 指针是什么2. 指针和指针类型3. 野指针4. 指针运算5. 指针和数组6. 二级指针7. 指针数组1.指针是什么?指针是什么? 指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址,口语中说的指针通常指的是指针变量理解内存指针变量我们可以通过&(取地址操作符)取出一个变量在内存中的地址,并把这个地址存放在一个原创 2021-11-27 10:59:09 · 394 阅读 · 0 评论 -
求一个数的二进制数有几个1
目录方法一:累除法方法二:位操作法方法三:位操作法2.0方法一:累除法#include<stdio.h>//方法1:累除法int count_num(unsigned int n){ int count = 0; while (n) { if (n % 2 == 1) count++; n /= 2; } return count;}int main(){ int n = 0; scanf("%d", &n); //n=原创 2021-11-21 23:22:37 · 746 阅读 · 0 评论 -
C语言操作符
目录操作符分类: 算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员1.算数操作符+ - * / %1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。 2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。 3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。 2.移位操作符位移操.原创 2021-11-17 16:06:14 · 587 阅读 · 0 评论 -
C语言---数组
1. 一维数组的创建和初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数目录1. 一维数组的创建和初始化2. 一维数组的使用3. 一维数组在内存中的存储4. 二维数组的创建和初始化5. 二维数组的使用6. 二维数组在内存中的存储7. 数组越界8. 数组作为函数参数1.一维数组的创建及初始化1.1数组的创建原创 2021-11-08 13:04:34 · 1268 阅读 · 0 评论 -
C语言---函数
目录1.函数定义2.库函数3.自定义函数4.函数参数5.函数调用6.函数的嵌套调用和链式访问7.函数的声明和定义8.函数递归1.函数定义维基百科对函数定义:子程序。在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备原创 2021-11-05 18:36:03 · 993 阅读 · 3 评论