自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 问答 (1)
  • 收藏
  • 关注

原创 TCP IP协议原理精讲

●抓包工具wireshark的安装:1.linux下可以在终端中输入:sudo apt-get install wireshark(注意:在linux中运行wireshark的时候也要加上sudo,如:sudo wireshark,要不然可能抓不到包);2.windos可以直接到官网下载进行安装;●TCP/IP协议网络封包格式:●MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例

2020-05-22 08:36:34 763

原创 本地字节序和网络字节序

本地字节序和网络字节序字节序指不同的CPU访问内存中多字节数据的时候,存在大小端的问题,并且一定是访问多字节数据的时候才会存在大小端的问题,如果CPU访问的是字符串,则不存在大小端的问题;那么如何判断发送端和接收端是大端模式还是小端模式呢,首先:●小端序(little-endian) - 低序字节存储在低地址;将低字节存储在起始地址,称为“Little-Endian”字节序,Intel、AM...

2020-03-20 23:45:21 1324

原创 C语言memset和bzero的实现方法

下面警告测试,我认为C语言memset和bzero的实现方法应该是类似的:#include <stdio.h>typedef struct A{ char ch[9]; int cc[2];}a;int main(int argc, const char *argv[]){ a x; int n,t; n = sizeof(a); char *p = (cha...

2020-03-20 22:26:39 323

原创 C语言网络编如何判断CPU是大端还是小端模式

最近在学习网络编程的时候一直不明白大端模式和小端模式的CUP的工作方式;做了下面的测试后得知本机CPU采取的是小端模式;#include <stdio.h>int main(int argc, const char *argv[]){ int i = 0x41424300; printf("i:%s\n",(char *) &i); return 0;}输出:...

2020-03-16 23:38:07 481

原创 指针数组和二维数组的区别

指针数组和二维数组的区别先看一段代码#include <stdio.h>int main(int argc,const char *argv[]){ char *ch[]={"a","b","cde"}; char ch1[][4]={"a","b","cde"}; printf("%c\n",ch[0][0]); printf("%s\n",ch[2]); prin...

2020-02-06 18:14:37 1418 1

原创 union共用体类型嵌入结构体的认识

#include <stdio.h>#include <stdlib.h>union { int i; struct { char first; char second; }sql_l;}number;int main(void){ number.i=0x44454445; printf("%c %#x\n",number.sql_l.f...

2020-02-03 21:34:53 495

转载 函数可以有两个返回值?初探神奇的fork()函数

本文为转载的!!!我只是为了加强自己的记忆,便于查看资料,才转载的。如有不妥,请原作者联系我,我删除。原网址为:https://blog.csdn.net/kwinway/article/details/79630934一个函数的返回值可有两个一个很简单的选择分支结构,学过基本语法的都知道,如果走if,就不会走else if. 当然,那是没有碰到fork()函数的时候.为什么呢? 我们...

2020-01-31 21:42:57 1697

原创 标准io\文件io和库

标准io标准I/O介绍概念:一组相关数据的有序集合文件类型:常规文件 r目录文件 d字符设备文件 c块设备文件 b管道文件 p套接字文件 s符号链接文件 lUNIX基础知识-系统调用和库函数标准I/O由ANSI C标准定义主流操作系统上都实现了C库标准I/O通过缓冲机制减少系统调用,实现更高的效率FILE标准IO用一个结...

2020-01-29 17:29:58 279

原创 Ctags文件的生成

Ctags文件的生成1.生成索引文件cd /usr/includesudo ctags -R2.查找内容,如:FILE结构体vi -t ”FILE“3.继续跟进内容把光标放到你要查找的内容处ctrl+] 表示下一级内容追踪ctrl+t 表示回到上一级内容如果智能在/usr/include下才能执行的话,需要配置/home/<用户名>/.vimrc文件,在文件的末尾添...

2020-01-12 09:05:24 562

原创 Umask的含义

Umask的含义umask=022中"022"是八进制的写法,如果换成二进制是000010010在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read®、写write(w)、执行execute(x)。如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有...

2020-01-06 14:36:59 4152

原创 为什么数组初始化没有赋值就必须使用strcpy或者一个一个的赋值

为什么数组初始化没有赋值就必须使用strcpy或者一个一个的赋值#include <stdio.h>#include <string.h>struct student{ int num; char name[20]; short age;}stu1;int main(int argc, const char *argv[]){ char name[...

2020-01-05 17:29:41 974

原创 Shell脚本for、while、continue、break和函数调用的用法

Shell脚本for、while、continue和break的用法for循环的使用#!/bin/bashecho "*****************************"#***********************************#数字性循环for ((i=1;i<=10;i++))do echo `expr $i \* 2`doneecho "**...

2020-01-05 02:11:54 684

原创 插入、折半、链式、shell、选择、冒泡和快速递归和非递归排序

插入、折半、链式、shell、选择、冒泡和快速递归和非递归排序①排序的基本概念排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。稳定排序和非稳定排序设文件f=(R1……Ri……Rj……Rn)中记录Ri、Rj(i≠j,i、j=1……n)的key相等,即Ki=Kj。若在排序前Ri领先于Rj,排序后Ri仍领先于Rj,则称这种排序是稳定的,其含义是它没有破坏原本已有序的次序。反之,若...

2019-12-28 00:07:02 174

原创 顺序表查找/折半查找和开放地址发与链地址法建立哈希表

顺序表查找/折半查找和开放地址发与链地址法建立哈希表1.查找的概念查找(或检索)是在给定信息集上寻找特定信息元素的过程。待查找的数据单位(或数据元素)称为记录。记录由若干数据项(或属性)组成,如学生记录:其中,“学号”、“姓名”、“性别”、“年龄”等都是记录的数据项。若某个数据项的值能标识(或识别)一个或一组记录,称其为关键字(key)。若一个key能唯一标识一个记录,称此key为主ke...

2019-12-25 14:11:28 390

原创 数据类型在运行后的存储方式

数据类型在运行后的存储方式今天因为遇到了二级指针数组的问题,想了好久发现不能理解,从新复习了c与指针的内容,根据自己的理解和参考一些大神的文章,总结了这篇;如果有理解错误的地方还请可以留言告知;下面将从程序的编译过程到存储方式一步步的梳理。1.首先先了解一下从程序的编译流程:在linux系统中编译一个C程序可以分为四阶段,预处理阶段->生成汇编代码阶段->汇编阶段->链接阶...

2019-12-25 01:43:31 239

转载 指针malloc分配空间与数组区别

指针malloc分配空间与数组区别C语言中的数组:C没有提供由语句来释放已静态定义的数组的措施。有以下几种情况:定义在函数中的自动存储型数组,在函数被调用时创建,函数退出后自动释放;定义在主函数中或所有函数之外的全局数组与程序的寿命一样长,不能中途释放;用static修饰的静态数组,无论在何处定义,与程序的寿命一样长,不能中途释放;用malloc函数申请的空间构成的数组,完成任务后可随...

2019-12-20 16:22:52 2503

原创 二叉树的创建遍历和释放

二叉树的创建遍历和释放树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件 :有且仅有一个特定的称为根(Root)的节点,其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree)。树的基本概念一个节点的子树的个数称为该节点的度数,一棵树的度数是指该树中节点的最大度数。度数为零的节点称为树叶或终端节点,...

2019-12-18 22:13:17 456

原创 Makefile通配符的使用和理解

Makefile通配符的使用和理解1.在建立下面文件:test1.c test2.c test3.c test4.c test.c.cNAME = $(basename test.c)JJ = $(filter %.c,$(shell pwd | ls))GG = $(wildcard *.c)OBJ1 = $(subst .c,.o,$(GG))OBJ2 = $(patsubs...

2019-12-18 00:11:30 651

原创 链式队列的基础操作

链式队列的基础操作队列概念:队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点 :先进先出(FIFO)。队列的特征:特殊的线性表,先进先出(FIFO)。1)数据:对于非空的队列,表头没有直接前驱,表尾没有直接后继,其它有且仅有一个直接前驱和一个直接后继。2)操作:只允许在表...

2019-12-14 14:32:16 278

原创 数据结构-顺序表

线性表作为一种基本的数据结构类型, 在计算机存储器中的映象( 或表示) 一般有两种形式, 一种是顺序映象, 一种是链式映象。若将线性表L=(a0,a1, ……,an-1)中的各元素依次存储于计算机一片连续的存储空间,如图所示。 这种机内表示为线性表的顺序存储结构。顺序存储结构的特点:– (1)逻辑上相邻的元素 ai, ai+1, 其存储位置也是相邻的;– (2)对数据元素ai的存取为随机...

2019-12-14 01:26:43 113

原创 单向循环链表的应用和joseph问题的解决

单向循环链表的应用和joseph问题的解决#ifndef __SLINKLIST_H__#define __SLINKLIST_H__#include <stdio.h>#include <stdlib.h>typedef int datatype;typedef struct single_node{ datatype data; struct s...

2019-12-14 01:26:22 112

原创 单链表多项式的排序和合并

单链表多项式的排序和合并多项式的相加多项式的表示与相加#ifndef __MERGE_POLY_H__#define __MERGE_POLY_H__#include <stdio.h>#include <stdlib.h>typedef struct { float coef; int exp;}data_t;typedef struc...

2019-12-14 01:25:29 790

原创 排序的分类和时间复杂度

排序的分类排序的时间复杂度

2019-12-14 01:25:08 145

原创 顺序队列的基础操作

顺序队列的基础操作队列概念:队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点 :先进先出(FIFO)。队列的特征:特殊的线性表,先进先出(FIFO)。1)数据:对于非空的队列,表头没有直接前驱,表尾没有直接后继,其它有且仅有一个直接前驱和一个直接后继。2)操作:只允许在表...

2019-12-14 01:24:33 400

原创 栈的顺序表和单链表的实现

栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。顺序栈#ifndef __SEQSTACK_H__#define __SEQSTACK_H__#include <stdio.h>#include <stdlib.h>#include &...

2019-12-12 23:24:23 187

原创 C语言结构体的理解

首先看代码 1 #include <stdio.h> 2 3 typedef struct 4 { 5 double d; 6 char ch; 7 int a; 8 }test,*ptest; 9 10 int main(int argc, const char *argv[]) 11 { ...

2019-12-12 21:34:24 187

原创 双向循环链表的创建、查找、插入、删除和遍历等操作

双向循环链表的创建、查找、插入、删除和遍历等操作#ifndef __DLINKLIST_H__#define __DLINKLIST_H__#include <stdio.h>#include <stdlib.h>typedef int datatype;typedef struct double_link_node{ datatype data; st...

2019-12-10 22:55:15 860

原创 单链表的创建、查找、排序、插入、删除、倒置和合并等操作

单链表的创建、查找、排序、插入、删除、倒置和合并等操作#ifndef __LINKLIST_H__#define __LINKLIST_H__#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef int datatype;typedef struct linknode...

2019-12-09 22:15:13 643

原创 C语言多维数组与指针的关系

C语言多维数组与指针的关系int arr[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,8}}; printf("int arr[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,8}}\n"); puts(""); printf("arr : %p\n",arr); printf("*arr : %p\n",*arr); print...

2019-12-05 13:41:03 130

空空如也

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

TA关注的人

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