自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 随机存取存储器DRAM

随机存取存储器DRAM一般叫动态随机存储器,其存储元为电容。正是因为电容具有漏电的特性,所以它不稳定,需要定时刷新。SRAM一般用于cache, DRAM一般用于主存。SRAM价格高,速度快。DRAM价格相对低,速度相对慢。...

2021-05-23 12:06:22 406

原创 协议层次及其服务模型

因特网是一个极为复杂的系统。我们已经看到,因特网有许多部分:大量的应用程序和协议、各种类型的端系统、分组交换机和各种类型的链路级媒体。面对这么庞大和复杂的系统,我们可以使用分层的体系结构。为什么要分层?不管是计算机网络还是其它的复杂系统,分层具有如下优点:(1)每一层对其上面的层提供相同的服务,并使用来自下面层次的相同服务。(2)当某层的实现变化时,该系统的其余部分保持不变。课本前面是对航班服务系统进行分层,现在将注意力转向网络协议,为了给网络协议的设计提供一个结构,网络设计者以分层(layer)的

2021-05-16 22:01:05 251

原创 分组交换中的时延,丢包和吞吐量

从互联网的服务描述来看,我们说互联网由分布式的应用进程和为分布式应用进程提供服务的基础设施组成。通常情况下,我们在任意两个端系统间通信,都希望我们给对方发送信息时,对方能够立刻送到信息。或者是客户机在访问服务器时,服务器能够立刻应答。然而,这是理想情况。事实上,计算机网络必定要限制在端系统之间的吞吐量(每秒能够传送的数据量),在端系统之间引入时延,而且实际上也会丢失分组。这一节,我们就来学习计算机网络中的时延,丢包,吞吐量等问题。在介绍时延,丢包,吞吐量等问题前,我们来看这样一个问题:考虑一条高速公路,

2021-05-14 08:52:17 1907

原创 随机存取存储器SRAM

前面,我们根据半导体存储(主存储器)的工作方式分为两类:一类是随机存储器(RAM),另外一类是只读存储器(ROM)。这一讲,我们重点来学习随机存取存储器。随机存取存储器主要用来存放的程序,各种输入输出数据,中间运算结果,堆栈等。我们说随机存取存储器有两个特点,其一是它可以随机的读写,其二是断电后内容会消失。根据制造工艺的不同,RAM可分为双击型半导体RAM和和金属氧化物半导体(MOS)RAM。用MOS器件构成的RAM可分为静态读写存储器SRAM和动态读写存储器DRAM。SRAM的存储元是双稳态电路.

2021-05-10 14:19:24 3427

原创 网络核心(二)

我们已经知道,通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching)。接下来,我们就对电路交换再进入深层次的探讨。电路交换网络中的复用 链路中的电路是通过频分复用(FDM)和时分复用(TDM)来实现的。 FDM:链路的频谱由跨越链路的所有连接共享。在连接期间,链路为每条连接专用一个频段。在电话网络中,这个频段的宽度通常为4kHZ。该频段的宽度称为带宽。频分复用的所有用户在同样...

2021-05-08 21:43:18 1047

原创 网络核心(一)

上一讲,我们学习了由主机(host)构成的网络边缘,我们说因特网是由边缘部分和核心部分构成。那么这一讲我们就来学习网络的核心部分。 什么是网络的核心部分?网络核心,即由连接因特网端系统的分组交换机和链路构成的网状网络。网络的核心部分主要是为网络边缘部分的端系统提供数据交换的。比如说,主机A要向主机B通信,则主机A要通过核心部分的分组交换机和链路,将信息由A传送到B。 网络核心部分有两种数据交换的方式,一种是分组交换,另外一种是电路交换。分组交换 ...

2021-05-06 20:47:02 2098

原创 网络边缘和接入网

上一讲,我们学习了因特网的两种描述,其中有一种我们说网络是由结点和连接这些结点的链路组成的。结点可以是主机(host),也可以是像交换机和路由器这样的中间结点。从网络的分布来看,主机分布于网络的边缘,这也就是为什么主机被叫做端系统的缘故。 这一讲,我们就重点来看看网络边缘。边缘就是末端,也就是端点。我们熟悉的端系统就是网络边缘的重要组成部分,像我们日常使用的计算机,手机,和其他联网设备。此外,因特网的端系统还包括服务器。 端系统也叫主机(host),因为它们容纳...

2021-05-03 20:10:14 28547 6

原创 因特网(互联网)的描述

什么是因特网?因特网多么耳熟能详的概念,但是你能描述出来吗?我们有两种回答方式:其一,描述因特网的具体构成,即构成因特网的基本组件(硬件和软件);其二,为分布式的应用提供提供服务的联网基础设施来描述因特网。 先看其一,我们的问题是因特网是由什么构成的呢?因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络。这些设备都称为主机(host)或端系统(end system)。端系统要通信,肯定要互连,端系统又是怎么互连在一起的呢?端系统通过通信链路(co...

2021-05-02 21:36:15 470

原创 线性结构(一)

数据结构包括数据逻辑结构,数据存储结构,以及实现数据操作的算法。在数据的逻辑结构中,有种常见的而且简单的结构叫做线性结构,即数据元素之间构成一个有序的序列。这一章,我们就来学习线性结构。下面以一个例子为例,来引入线性结构:【例1】一元多项式及其运算一元多项式的标准表达式可以表示为:f(x) = a0 + a1x^1+......+a(n-1)x^n-1+a(n)x^n其运算有相加,相减,相乘如何在计算机中表示一元多项式并实现其运算呢?我们来看看一元多项式的标准形式:你会发现如

2020-11-30 21:03:16 933

原创 C语言中特殊结构类型“双链表”

前面写了一篇文章《C语言中特殊结构类型“单链表”》,既然有单链表,那就会有双链表。所以,我想来详谈一下双链表。双向链表,顾名思义,其有别于单向链表。单向链表是有方向的,其方向是从头结点开始,直到尾结点。实质是因为单链表的指针域只存储了下一结点的地址。而双链表之所以是双向,其实质也就是每个结点的指针域不仅存储下一结点的地址,还存储上一结点的地址。这有什么好处吗?想想看假设对于一个单向链表,某一结点的后继结点可以直接通过next指针找到,但是如果我要你找这个结点的前继结点,是不是很困难?因为这一结点并未

2020-11-26 22:14:26 153

原创 数据结构实现基础(三)

上一讲学习了一些基本的数据类型像数组,结构。我们还学习了一些指针的基本概念。这一讲,我们主要学习两种数据类型,一种叫联合,也叫共同体。还有一种就是链表。一.联合(共同体)共同体同结构体在声明形式和访问方式上有些类似,但是它和结构体是完全不一样的。所谓共同体类型,是指将不同的数据项组成一个整体,它们在内存中占用同一段存储单元。定义形式为:union 共同体名{ 类型名 成员名1; 类型名 成员名2; ...... 类型名 成员名n;};由于共同体中各个成员变量在内存中

2020-11-25 20:25:45 285 1

原创 C语言中的特殊结构类型“单链表”

要建立一个班级的学生信息表,根据之前所学的知识,用结构数组来实现。例如如下代码:STUDENT stu[30] = { {"202001", "张三", 'M', 85} {"202002", "李四", 'F', 90} }; 数组是最基本的构造类型,它是一组相同类型数据的有序集合。数组中的元素在内存中连续存放。学过数据结构这门课程,就会知道,数组实质是一种线性结构的顺序表示方式。这样方便存取线性表中的任意一元...

2020-11-24 15:42:59 577 2

原创 数据结构实现基础(二)

变量是数据存储的基本单位,而变量是有类型的。C语言事先定义了几种基本的数据类型,供程序员直接使用,如整型,实型,字符型等。为了使程序员能够充分表达各种复杂的数据,C语言还提供了构造复杂数据类型的手段,如数组,结构,指针等。...

2020-11-19 16:57:21 201

原创 数据结构实现基础(一)

什么是数据结构?笔者认为数据结构包括三个部分【1】数据的逻辑结构,即数据对象集【2】数据的物理存储结构,即数据对象集在计算机中的组织方式【3】数据对象集相关联的操作集,以及实现这些操作集的最高效的算法。简而言之,数据结构包含数据逻辑结构,数据物理存储结构,算法。数据结构往往是抽象的,它的实现需要依赖具体的程序设计语言,一般使用C语言来实现。例1在日常数据处理中经常碰到的问题是需要对一组数据进行基本的统计分析。比如分析一个班级学生的平均成绩,最高成绩,最低成绩,中位数等。再比如,统计家庭每年每月.

2020-11-19 11:10:02 562

原创 浅谈C语言中的“枚举”

枚举,顾名思义就是“一个一个地举出来”。在处理很多问题时,程序中的变量只需要少量有意义的值。例如,用来存储一周中某一天的变量应该只有7种可能的值:Mon, Tue, Wed, Thu, Fri, Sat, Sun;用来存储扑克牌花色的变量应该只有4种可能的值:“黑桃”,“红桃”,“梅花”, “方片”。C语言提供枚举类型来定义这种变量。枚举即一一列举之意,枚举类型是一种值由程序员列出的类型,而且程序员必须为每个值命名(枚举常量),需要用关键字enum来定义。enum Weekday = {Sun, Mo

2020-11-11 18:56:49 295 5

原创 探讨C语言中的“联合“类型

前面我们知道C语言在定义一个变量时,往往会为定义的变量分配一段内存空间。但是C语言有一个特殊功能,可以使多个变量共享同一个内存。这个功能可以通过联合来实现。那么什么是联合呢?一.联合联合:在C语言中允许多个不同变量共享同一内存区域的功能称为联合。假如现在我要定义三个变量共享的一个联合,也就是三个变量同属同一内存区域,应该怎么定义呢?union unnode{ int n; double a; char c1;}u;现在我们来看上述代码,你发现它与那一种类型很相似呢

2020-11-09 20:47:37 765

原创 结构应用举例

我们先来对前面几节进行一个出略的概述,首先我们学习了结构的相关概念,如我们为什么要引入结构这一类型,它有什么优势呢?它的特点是什么呢?如何定义结构类型和结构变量,并且提及到typedef的定义数据类型。有了结构变量后,我们要对结构变量进行初始化。而且我们知道结构中的结构成员可以是任何数据类型,结构本身也是一种数据类型,那也就是说结构中还可以有结构,即可以将一个结构作为另外一个结构的成员。还要知道如何访问结构成员。结构可以作为结构数组(数组元素为结构类型),结构数组是如何定义的?如何访问结构数组?以及如何

2020-11-09 16:08:58 149

原创 结构与函数的关系

思考:能否将结构,结构指针,结构数组作为参数传递给函数,也就是说我们来看看结构与函数有什么样的关系?一.结构变量作为函数的参数将结构作为参数传递给函数和传递一般变量的机制相同,都是单向值传递。不妨我们先看个例子吧。//将结构类型作为函数参数,输出一个日期的值。//首先定义一个日期结构类型date,包含年月日信息,然后定义一个函数,功能是输出date类型形参的值。#include<stdio.h>typedef struct date //定义一个结构类型{ int y

2020-11-04 09:05:38 341

原创 用指针访问结构数组

前面我们已经学习过结构指针和结构数组的概念,我们知道可以用指针访问和引用数组,由此可知也可以用指针访问结构数组。即一个指针变量可以访问普通的数组,也可以访问结构数组。typedef struct student { char ID[10]; char name; char sex; float score;}STUDENT;STUDENT stu[30] = { {"202001","张三",'M',85}, {"202002","李四",'M',90},

2020-10-30 14:15:54 2047

原创 结构数组与指针

一个结构变量只能表示学生信息表中的一个学生信息,即学生信息表中某个学生的信息。例如现在有一个学生信息表,这个学生信息表有n个学生的学号,姓名,性别,成绩等信息。那么要完全表示这些学生的信息,必须至少有n个结构变量,分别表示每个学生的信息。如果n相对比较大,那么要表示这么多结构变量的信息还真不是一件简单的事情。就像当要定义很多个整数时,不可能int a,b,c,d,......x,y..,为了能够方便的表示这么多的整数,c语言中有整型数组的概念。类似的,需要定义多个结构变量对这么多具有相同结构的学生信息,定义

2020-10-30 11:03:14 350

原创 使用typedef定义数据类型

我们在C语言的关键字表中能够找到关键字typedef,它的意义是为复杂的声明定义简单的别名。对于这个单词,我们可以拆解,type为类型的意思,def是define(定义)的缩写。所以typedef的意义是为复杂的声明定义简单的别名。关键字typedef用于为系统固有的或用户自定义的数据类型定义一个别名。假设有一个结构用三个坐标x,y,z表示一个点。它的定义如下:struct pts{ int x; int y; int z;};结构也是一种数据类型,那么关键字typede

2020-10-28 20:15:47 2486

原创 再谈结构类型

上篇《C语言的结构类型》我们已经学习过C语言为什么要使用结构类型,使用结构类型有什么好处,以及我们也学习了如何定义结构类型和结构变量。同时为了形象化的说明,我们把结构比喻为包裹,结构成员比喻为包裹中的物件,结构变量比喻为包裹的收件人,即谁的包裹。定义完结构类型和结构变量后,我们要对结构变量进行初始化。与其它变量类型一样,也可以在声明结构变量时对其初始化,方式与初始化数组类型,在结构变量的后面加'='和一个初始化列表。例如利用前面所定义的...

2020-10-28 17:24:01 183

原创 C语言的clock函数

clock函数功能:测试程序时间,测试从程序开始运行到clock被调用所耗费的时间。头文件:time.h时间单位:clock_tick,即"时钟打点"数据类型clock_t常数CLK_TCK(CLOCKS_PER_SEC):表示机器时钟每秒所走的时钟打点数。#include<stdio.h>#include<time.h>clock_t start , stop;//clock_t是clock()函数返回的变量类型,后续将把返回值赋值给start,stop

2020-10-27 16:13:01 6049

原创 C语言的结构类型

过去我们已经学习过C语言的一些数据类型,如基本数据类型和创建这些类型的数组。那么这些数据类型是否都能解决所有实际问题呢?请看以下的例子:例1:试编写一个学生成绩管理系统,包括每个学生的姓名,学号,性别,成绩等信息。如下表:学生成绩管理系统 姓名 学号 性别 成绩 张三 202001 M 85 李四 202002 F 90 如何解决这个问题?根据我们过去学习过的数据类型,我们会联想到数组来存储表中的每个信息。而数组的特点是,数组中的每

2020-10-26 21:27:39 795

原创 内存能否动态分配

问题引入:我们在定义一个变量时,计算机是如何存取该变量的呢?如下代码,计算机是如何存入和读取a的值得呢?#include<stdio.h>int main(void){ int a; scanf("%d", &a); printf("%d",a); return 0;}其实,我们在程序中定义一个变量,系统并不认识这个字母。原来,变量名称要被编译器转化为内存地址(这个内存地址编译器知道,而程序员不知道)。当我们读取这个变量,实际上是...

2020-10-26 15:00:51 151

原创  浅谈局部变量和全局变量

浅谈局部变量和全局变量问题引入:当一个程序中出现多个函数时,函数中有许多变量,那么这些变量的作用范围有多大呢?也就是说什么时候这些变量仍起作用,什么时候这些变量不起作用呢? ...

2020-10-24 09:12:13 256

空空如也

空空如也

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

TA关注的人

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