自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 004__双向链表+双向循环链表+程序设计与笔试题分析

第四天笔记一、双向链表的原理与应用如果想要提高单向链表或者单向循环链表的访问速度,则可以在链表中的结点中再添加一个指针域,让新添加的指针域指向当前结点的直接前驱的地址,也就意味着一个结点中有两个指针域(prev + next),也被称为双向链表(Double Linked List)。 由于带头结点更加方便用户进行数据访问,所以本次创建一条带头结点的双向不循环的链表。1.创建一个空链表,由于是使用头结点,所以就需要申请头结点的堆内存并初始化即可!2.创建新结点,为新结点申请

2025-02-13 21:13:52 212

原创 003__单向循环链表+程序设计与笔试题分析

第三天笔记一、单向循环链表的原理与应用思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查?回答:是有的,可以使用单向循环的链表进行设计,单向循环的链表的使用规则和普通的单向链表没有较大的区别,需要注意:单向循环链表的尾结点的指针域中必须指向链表的首结点的地址,由于带头结点的单向循环链表更加容易进行管理,所以教学以带头结点的为例:上图所示的就是一个典型的单向循环链表的结构,可以发现单向循环链表的结构属于环形结构,链表中

2025-02-13 21:10:26 221

原创 002__链表概念+单向链表+程序设计与笔试题分析

第二天笔记一、链表的原理与应用大家可以知道对于顺序表的数据增加和删除是比较麻烦,因为都需要移动一片连续的内存。顺序表的优点是:由于顺序表数据元素的内存地址都是连续的,所以可以实现随机访问,而且不需要多余的信息来描述相关的数据,所以存储密度高。顺序表的缺点是:顺序表的数据在进行增删的时候,需要移动成片的内存,另外,当数据元素的数量较多的时候,需要申请一块较大的连续的内存,同时当数据元素的数量的改变比较剧烈,顺序表不灵活。思考:既然顺序表实现数据的增加和删除比较麻烦,又占用连续内存,请问有没

2025-02-13 21:09:12 717

原创 001__嵌入式知识体系+数据结构概念+时间复杂度+顺序表

第一天笔记一、数据结构概述- 基本概念数据结构指的是计算机存储数据和组织数据的方式,存储数据和组织数据的目的是为了后期对数据的再次利用,所以存储的数据一般是具有一个或者多个特定关系的集合,利用不同的数据结构可以提高数据的访问效率。思考:为什么大家来到新教室选好座位之后需要填写座位表?? 答案:方便对数据管理数据指的是可以被输入到计算机并且可以被计算机处理的符号的总称,数据的英文是Data。- 数据结构数据是有单位的,数据的基本单位是数据元素(Data Element),在计算

2025-02-13 21:08:02 639

原创 018__预处理

​[ 基本难度系数 ]:★★☆☆☆一、程序编译过程(1)、编写源程序(.c文件.cpp文件等),可否直接在ubuntu、开发板上运行起来(2)、程序编译过程说明a、编译过程-预处理(cpp:Cpreprocesser:C的预处理器)说明:预处理程序对源文件中以字符#开头的命令进行处理,例如:#include命 令后面的.h文件内容,嵌入到源程序文件中(对#做替换:头文件、宏,去掉注释,条件编译)注意:预处理程序的输出结果还是一个源程序文件,以.i为扩

2024-12-29 19:36:35 705

原创 017__联合体和枚举

​[ 基本难度系数 ]:★☆☆☆☆一、联合体(共用体)(1)、基本概念联合体的外在形式跟结构体非常类似,但它们有一个本质的区别:结构体中的各个成员是各自独立的,而联合体中的各个成员却共用同一块内存,因此联合体也称为共用体。联合体各成员的堆叠效果联合体内部成员的这种特殊的“堆叠”效果,使得联合体有如下基本特征:整个联合体变量的尺寸,取决于联合体中尺寸最大的成员。给联合体的某个成员赋值,会覆盖其他的成员,使它们失效。联合体各成员之间形成一种“互斥”的逻辑,在某个时刻只有一个成员

2024-12-29 19:34:03 477

原创 016__结构体的尺寸

​[ 基本难度系数 ]:★★★☆☆一、结构体尺寸计算(1)、CPU字长字长的概念指的是处理器在一条指令中的数据处理能力,当然这个能力还需要搭配操作系统的设定,比如常见的32位系统、64位系统,指的是在此系统环境下,处理器一次存储处理的数据可以达32位或64位。CPU字长的含义(2)、地址对齐CPU字长确定之后,相当于明确了系统每次存取内存数据时的边界,以32位系统为例,32位意味着CPU每次存取都以4字节为边界,因此每4字节可以认为是CPU存取内存数据的一个单元。如果存取的

2024-12-27 20:12:55 1816

原创 015__结构体基础

[ 基本难度系数 ]:★★☆☆☆一、结构体基本概念和定义C语言提供了众多的基本类型,但现实生活中的对象一般都不是单纯的整型、浮点型或字符串,而是这些基本类型的综合体。比如一个学生,典型地应该拥有学号(整型)、姓名(字符串)、分数(浮点型)、性别(枚举)等不同侧面的属性,这些所有的属性都不应该被拆分开来,而是应该组成一个整体,代表一个完整的学生。在C语言中,可以使用结构体来将多种不同的数据类型组装起来,形成某种现实意义的自定义的变量类型。结构体本质上是一种自定义类型。结构体的语法:结构体标签

2024-12-27 20:09:15 690

原创 014__存储期(时间)

​[ 基本难度系数 ]:★☆☆☆☆一、基本概念C语言中,变量都是有一定的生存周期的,所谓生存周期指的是从分配到释放的时间间隔。为变量分配内存相当于变量的诞生,释放其内存相当于变量的死亡。从诞生到死亡就是一个变量的生命周期。根据定义方式的不同,变量的生命周期有三种形式:1. 自动存储期 --- 函数死,变量就死2. 静态存储期 --- 程序死,变量才死(普通函数死它不会死(除了main函数))3. 自定义存储期 --- 程序员让它死,它才死(或者程序死了,它才死) ---- 君要臣死

2024-12-27 20:08:25 1399

原创 013__作用域(空间)

[ 基本难度系数 ]:★★☆☆☆一、基本概念C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。软件开发中,尽量缩小标识符的作用域是一项基本原则,一个标识符的作用域超过它实际所需要的范围时,就会对整个软件的命名空间造成污染,导致一些不必要的名字冲突和误解。例子: 你在一个工程里,定义了一个全局变量int num,那么接下来工程里面所有的 区域,你都将要注意,定义变量时,不能和其产生冲突或者误解二、函数声明作用域

2024-12-27 20:07:00 574

原创 012__字符串函数

​[ 基本难度系数 ]:★★★☆☆一、函数strchr与strrchr注意:这两个函数的功能,都是在指定的字符串 s 中,试图找到字符 c。strchr() 从左往右找,strrchr() 从右往左找。字符串结束标记 ‘\0’ 被认为是字符串的一部分。图解:示例代码:#include #include // 自己写的库 // 从左往右 char *MY_LIB_StrLchr(const char *s, int c) { // 1、如

2024-12-27 20:05:38 769

原创 011__特殊函数

[ 基本难度系数 ]:★★★☆☆一、静态函数背景知识:普通函数都是跨文件可见的,即在文件 a.c 中定义的函数可以在 b.c 中使用。静态函数:只能在定义的文件内可见的函数,称为静态函数。语法:staitc void f(void) // 在函数头前面增加关键字 static ,使之成为静态函数 { // 函数体 }要点:静态函数主要是为了缩小函数的可见范围,减少与其他文件中重名函数冲突的概率。静态函数一般被定义在头文件中,然后被各个源文件包含。示例代码:main.c文件#i

2024-12-27 20:04:25 831

原创 010__函数基础

​[ 基本难度系数 ]:★★☆☆☆一、函数的定义(1)、函数入门在C语言中,函数意味着功能模块。一个典型的C语言程序,就是由一个个的功能模块拼接起来的整体。也因为如此,C语言被称为模块化语言。对于函数的使用者,可以简单地将函数理解为一个黑箱,使用者只管按照规定给黑箱一些输入,就会得到一些输出,而不必理会黑箱内部的运行细节。黑箱的输入和输出日常使用的电视机可以被理解为一个典型的黑箱,它有一些公开的接口提供给使用者操作,比如开关、音量、频道等,使用者不需要理会其内部电路,更不需要管

2024-12-26 21:44:21 661

原创 009__内存管理

​[ 基本难度系数 ]:★★★☆☆一、C进程内存布局(1)、了解一个文件所需的linux命令(2)、了解程序在电脑上运行的过程(3)、C进程内存布局(内存条中的虚拟内存)任何一个程序,正常运行都需要内存资源,用来存放诸如变量、常量、函数代码等等。这些不同的内容,所存储的内存区域是不同的,且不同的区域有不同的特性。因此我们需要研究其内存布局,逐个了解不同内存区域的特性。每个C语言进程都拥有一片结构相同的虚拟内存,所谓的虚拟内存,就是从实际物理内存映射出来的地址规范范围,最重要

2024-12-26 21:42:36 746

原创 008__指针.进阶

​[ 基本难度系数 ]:★★★★☆一、指针语法剖析任意的指针,不管有多复杂,其定义都由两部分组成。第1部分:指针所指向的数据类型,可以是任意的类型第2部分:指针的名字(定义)指针和数组的关系图解示例代码:char *p1; // 一级指针,第一部分:char *, 第二部分:p1 char **p2; // 二级指针,第一部分:char **, 第二部分:p2 char ***p3; // 三级指针,第一部分:char ***, 第二部分:p3 char (*p4)[5]; //

2024-12-26 21:38:25 872

原创 007__数组.进阶

[ 基本难度系数 ]:★★★☆☆一、数组名含义在C语言程序中,数组的出现有两种可能的含义:代表整个数组代表其首元素的地址当出现以下情形时,数组代表的是整个数组:在数组定义中在 sizeof 运算表达式中在取址符&中当出现其他情形时,数组代表其首元素地址。指针指向该数组首元素的地址时函数传参时使用scanf函数直接使用数组名示例代码:#include #include // 将26个小写字母转换为大写字母 /* 修改前: // 传参,

2024-12-26 21:34:18 388

原创 006__指针.初阶

​[ 基本难度系数 ]:★★★☆☆一、指针入门(1)、准备知识(地址的知识)1、内存地址字节:字节是内存的容量单位,英文称为 byte,一个字节有8位,即 1byte(0000 0000 --- 1111 1111) = 8bits(0 --- 1)地址:系统为了便于区分每一个字节而对它们逐一进行的编号,称为内存地址,简称地址。// 32位系统:说明:地址+1就是加1个字节为什么选32位系统来讲内存??32位:4G内存:64位:理论:1800万TB,操作系统支持

2024-12-26 21:31:10 636

原创 005__数组.初阶

[ 基本难度系数 ]:★★★☆☆一、基本概念逻辑:一次性定义多个相同类型的变量,并存储到一片连续的内存中 示例:int num[5];语法释义: num 是数组名,即这片连续内存的名称 [5] 代表这片连续内存总共分成5个相等的格子,每个格子称为数组的元素 int 代表每个元素的类型,可以是任意基本类型,也可以是组合类型,甚至可以是数组 初始化:在定义的时候赋值,称为初始化int num[5] = {100,200,300,400,500}; // ok,正常初始化 int

2024-12-26 21:26:53 499

原创 004__控制流

[ 基本难度系数 ]:★★★☆☆一、二路分支逻辑:程序中某段代码需要在满足某个条件时才能运行 形式: if 语句:表达一种 如果-则 的条件执行关系 if-else 语句:表达一种 如果-否则 的互斥分支关系 注意: if 语句可以单独使用,else 语句不可以,else 语句必须跟if语句配套使用 不管是 if 语句还是 else 语句,代码块都必须使用大括号{}括起来,否则只有首句有效 注意if语句后面是否有;号,如果其加了;号,不论语句判断是否正确,都将会执行{}里的

2024-12-25 12:43:44 1508

原创 003__运算符

[ 基本难度系数 ]:★★☆☆☆一、算术运算符 运算符 功能说明 举例 + 加法,一目取正 a+b - 减法,一目取负 a-b * 乘法 a*b / 除法 a/b %

2024-12-25 12:42:51 784

原创 002__数据类型

[ 基本难度系数 ]:★★★☆☆一、整型(int)概念:表达整数类型的数据(正整数、负整数、0) 全称:integer 语法:int a = 100; // 定义了一个专门用来存储整型数的变量(variable)需要注意的地方(其它数据类型也如此):int 的本意是 integer,即整数的意思 int a 代表在内存中开辟一块小区域,称为 a,用来存放整数,a 一般被称为变量。 变量 a 所占内存大小,在不同的系统中是不一样的,64位系统典型的大小是4个字节。 变量 a 有固定

2024-12-25 12:41:02 744

原创 001__C语言程序入门

[ 基本难度系数 ]:★★☆☆☆一、C语言的基本结构(1)、第一个程序:hello world配置部署好 vsCode 之后,就可以直接在上面写代码了,新建一个新的C程序文件,向屏幕输出一串字符 “Hello World!”下面,从整体上来分析一下这个最简单的C语言程序,将这个最简程序的各个部分剖析清楚,明白我们写下的每一个字符的具体含义。(2)、第一个程序结构解析1、头文件#include <stdio.h> // 告诉编译器在.h文件中(声明)有这么一个符

2024-12-25 12:39:23 481

原创 000__技术支持与问题解决

>右击左下角开始,选择搜索"控制面板"->选择外观和个性化->选择文件资源管理器选项->选择查看->将隐藏已知文件类型的扩展名前面的√去掉。

2024-12-11 12:27:41 686

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除