TCP/IP协议原理
TCP/IP协议是Internet互联网最基本的协议,TCP/IP协议的应用层的主要协议有HTTP、Telnet、FTP、SMTP等,是用来读取来自传输层的数据或者将数据传输写入传输层;传输层的主要协议有UDP、TCP,实现端对端的数据传输;网络层的主要协议有ICMP、IP、
MS SQL Server简介
Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API)
前言
C语言中的循环结构时,for循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。
本文将详细介绍for循环的用法,并提供相关的可编译运行的C代码示例。
一、人物简介
第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。
第二位上场的是和我们一起学习的小白程序猿 ——
在前面的文章《驱动开发:内核解析PE结构导出表》中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定SSDT函数的Hook挂钩操作,与《驱动开发:内核层Inl
前言
在C语言中,break语句是一种控制流语句,它用于终止当前所在的循环结构(for、while、do-while)或者switch语句,从而跳出循环或者结束switch语句的执行。
一、人物简介
第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。
第二位上场的是和我们一起学习的小
在数据结构中,我们已经学习到了简单的静态链表以及单链表和双链表,它们各有优缺点,但是有个共同的问题是他们呢无法存储不同的数据。下面提供了一种方法,可以将不同节点的数据链接起来。
下面的代码都是基础的C语言代码,涉及到的知识点基本覆盖到C语言学习的所有知识面,尤其是使用了宏,减少了重复的代码。
无论
前言
在C语言中,宏定义是一种预处理指令,用于在代码中定义和使用常量、函数或代码片段的替代。
宏定义使用#define关键字来定义,并在代码中进行替换。宏定义具有以下优点:
简化代码:宏定义可以将一些常用的、重复出现的代码片段简化为一个宏名称,提高代码的可读性和简洁性。
提高效率:宏定义在预处理阶
前言
在C语言中,枚举是一种方便组织和表示一组相关常量的工具。枚举类型有助于提高代码的可读性和可维护性。本文将介绍C语言枚举的基本概念、语法和用法,以及一些高级技巧。
一、人物简介
第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。
第二位上场的是和我们一起学习的小白程序猿 —— 逍
前言
在存储领域中有一个FTL的概念,这是一种Flash的内存管理算法,属于各个厂商的核心机密,每个厂商的处理方式不同,有的处理简单,有的处理复杂。
FTL,即Flash Translations layer,也就是闪存转换层,可以完成从逻辑地址到物理地址的转换,简称为映射。
为什么需要FT
#include <stdio.h>
int main()
{
int w, i, j;
printf("输入正方形边长n");
scanf_s("%d", &w);
if (w <= 0)
{
1. make工具和Makefile文件
make是解决大工程编译的工具,描述哪些文件需要编译、哪些需要重新编译的文件就叫做 Makefile,Makefile 就跟脚本文件一样,Makefile 里面还可以执行系统命令。我们使用的时候只需要一个make命令即可完成整个工程的自动编译,极大的提高了
前言
在C语言中,指针是一项重要的概念,它允许我们直接访问和操作内存地址。
可以说,指针是C语言一大优势。用得好,你写程序如同赵子龙百万军中取上将首级;用得不好,则各种问题层出不穷,有种双拳难敌四手的感觉。
本文将介绍指针的基础知识,包括指针的定义、初始化、访问和运算。
一、人物简介
第一位闪亮登
数组
本篇主要介绍:一维二维数组、字符数组、数组名和初始化注意点以及字节序。
一维数组
初始化
有以下几种方式对数组初始化:
// 定义一个有5个元素的数组,未初始化
int a[5];
// 定义一个有5个元素的数组,将第一个初始化0,后面几个元素默认初始化为0
int a[5] = {0};
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
排序和搜索算法
本篇,我们将一起学习最常用的搜索和排序算法,如冒泡排序、选择排序、插入排序、归并排序、快速排序,以及二分搜索、插值搜索。
同时我们得理解,首先得排好序,才能更好的搜索需要的信息。
著名算法的动画演示
https://vi
前端学习 数据结构和算法 快速入门
前言
前端为什么要学习数据结构和算法
为了高效的解决常见问题
对于计算机科学,算法是最基础的概念
好的IT公司,算法是面试中的重头戏
数据结构和算法之间地关系
比如需要解决一个问题,可能得首先选一种数据结构来存储数据,而算法就是基于对数据结构地操作,所以解决一个
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
数组数据结构
数组是最简单的数据结构。
几乎所有编程语言都原始支持数组。
数组存储一系列同一种数据类型的值。虽然 javascript 中的数组能保存不同类型的值,但我们还是遵循最佳实践,因为大多数语言都没这个能力。
注:本篇文章不会介
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
栈
前面,我们学习了如何创建和使用计算机科学中最常用的数据结构——数组。
我们知道可以在数组的任意位置添加或删除元素,但有时我们还需要一种能在添加和删除元素时有更多控制的数据结构。有两种类似数组的数据结构在添加和删除时有更多控制,它们就
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
队列和双端队列
前面我们已经学习了栈数据结构。队列和栈非常类似,栈的原则是先进后出,而队列则是先进先出。同时,我们要学习双端队列,它是一种允许我们同时从前端和后端添加元素和移除元素的特殊队列。
队列数据结构
队列遵循先进先出(FIFO,
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
链表
链表数据结构
前面我们已经学习了数组数据结构,但是从数组头部或中间插入元素,或者移除元素的成本比较高,因为需要移动元素。
就像这样:
// 从头部插入元素
Array.prototype.insertFirst = functio
其他章节请看:
前端学习 数据结构与算法 快速入门 系列
集合、字典和散列表
集合
集合:由一组无序且唯一的项组成。
Tip:集合 是数学中的概念,但应用在计算机科学的数据结构中。
创建集合类
通常集合有如下方法:
add(element): 给集合添加新元素
delete(element)