自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (6)
  • 收藏
  • 关注

原创 单链表常见操作

单链表的翻转,找倒数第K个节点typedef struct ListNode_t{ int value; struct ListNode_t *next;}ListNode;/*找到链表倒数第K个节点*/ListNode* find_kth_to_tail(ListNode* pListHead, unsigned int k){ if((NULL == pListHead) || (0 == k)) { return NULL;

2020-11-08 09:55:40 650

原创 快速排序实现

快速排序的C语言实现:递归法void quick_sort(int a[],int low,int high){ if(low >= high) { return; } int i = low; int j = high; int key = a[i]; while(i < j) { while((i < j) && (a[j] >= key)) { j--; } if(i < j) a[i++] = a[

2020-11-07 22:28:19 507

原创 str&mem系列函数的实现

常见的str及mem系列函数的实现/*由src所指内存区域复制count个字节到dst所指内存区域,如果目标区域和源区域有重叠的话memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同*/void* my_memmove(void* dst, const void* src, size_t count){ if((NULL == dst) || (NULL == src)) { pri

2020-11-07 22:22:02 428

原创 大顶堆的实现:有详细注释

堆排序的实现 C语言/*heap sort*//*交换数组中的两个元素*/void swap(int arr[], int idx1, int idx2){ int tmp = arr[idx1]; arr[idx1] = arr[idx2]; arr[idx2] = tmp; return;}/*堆化,根据定义调整为大顶堆*/void max_heapify(int arr[], int index, int num){ int largest_idx = 0; /*保存

2020-11-07 21:49:57 166

原创 经典C语言面试题14:memcpy使用注意事项

memcpy函数原型如下:void *memcpy(void *dst, const void *src, size_t n)功能:用来拷贝src所指的内存内容前n个字节到dst所指的内存地址上。使用时应当注意以下几点:1、如果复制的字节数n超出了dst的空间容量,或者n超出src的容量,此函数是不会进行判断的,这样就很危险。因此,需要程序员自己检查是否有溢出的情况出现。2、...

2019-08-11 12:14:32 2848

原创 经典C语言面试题13:#define与typedef的区别

一、简介1、#define #define为C语言中的预处理指令,不仅可以为类型取别名,还可以定义常量、变量、编译开关等。2、typedef typedef用来给已有的类型起一个别名,主要作用如下:① 简化复杂的类型声明,如typedef bool (* FunPtr) (int, double); //声明了一个返回bool类型并带有两个形参的函数指针类型F...

2019-08-10 17:59:11 2921

原创 经典C语言面试题12:C语言字符串与字符数组

在C语言中,将字符串作为字符数组来处理。C语言规定了一个“字符串结束标志”,以字符‘\0’代表。也就是说,在遇到第一个‘\0’字符时,表示字符串结束,由它前面的字符组成字符串。 一、字符数组 用字符串常量来初始化字符数组,例如:/* 例1 */char str[] = {"I am happy"}; //也可以省略花括号char str[] = "I am h...

2019-08-10 17:22:41 3250

原创 经典C语言面试题11:程序的内存分配

一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack):由系统自动分配和释放,存放函数的参数值,局部变量的值等。2、堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由系统回收。3、全局区/静态区(static):全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量在一块区域;未初始化的全 局变量和未初始化的静态变量在相邻的另一...

2019-08-10 16:22:25 2405

原创 经典C语言面试题10:堆和栈的区别与联系

1、申请方式栈(stack)由系统自动分配。例如,在函数中声明一个局部变量:int b;系统会自动在栈中为b开辟内存空间。堆(heap)需要程序员自己申请,并指明大小。例如,在C语言中的malloc函数:char *p = NULL;p = (char *)malloc(10);在C++中的new运算符p = new char[10];2、申请后的系...

2019-08-04 18:32:34 3139

原创 经典C语言面试题9:自旋锁和信号量的区别

一、概念简介1、自旋锁 自旋锁是专门为防止多处理器并发而引入的一种锁,主要用于对称多处理器(SMP)环境中,在内核中大量用于中断处理等部分。自旋锁最多只能被一个内核任务持有,若一个内核任务试图请求一个已被争用的自旋锁,那么这个任务就会一直进行忙循环——>旋转——>等待锁重新可用。若锁未被争用,请求它的内核任务便能立刻得到它并且继续执行。自旋锁可以在任何时刻防止多于一个的内...

2019-08-04 17:59:21 2506

原创 存储基础:LUN、ThickLUN与Thin LUN的联系和区别

一、基本概念       LUN:全称是Logical Unit Number,中文名是逻辑单元号。LUN是在存储设备上可以被应用服务器识别的独立存储单元。一个LUN的空间来源于存储池Pool,Pool的空间来源于组成磁盘阵列的若干块硬盘。从应用服务器的角度来看,一个LUN可以被视为一块可以使用的硬盘。例如,在Linux系统中,它在/dev/rdsk、/dev/dsk目录下有相应的设备名称;在Wi...

2018-06-04 15:20:13 20733

原创 经典C语言面试题8:sizeof与strlen的区别

一、基本定义1、sizeof是C/C++中的一个运算符,其作用是返回一个对象或者类型在内存中所占用的字节数。    注意:sizeof后面如果是类型则必须加括号,如 sizeof(char);而如果是变量名则可以不加括号,如 sizeof a; 但是建议使用时  均加上括号。sizeof不能返回动态地被分配的数组的大小。2、strlen是C语言中的库函数,所在头文件为#include &lt;st...

2018-05-27 18:52:37 9133 2

原创 经典C语言面试题7:const关键字的作用

一、const关键字简介    const是单词constant的简写,若一个变量前用const修饰,就意味着该变量里的数据可以被访但不能被修改,即该变量是“只读”的。二、const关键字的用法    1. 用于修饰局部变量        例如:const int n = 5;int const n = 5;/*二者是等价的,均表示变量n的值不能被改变了*/       注意:在使用const修...

2018-05-27 18:05:33 3896

原创 Linux下GDB调试常用命令介绍

一、GDB是啥?    GDB是GUN开源组织所发布的一个强大的UNIX下的程序调试工具。可能我们都比较喜欢像VC、BCB及IDE等图形化界面方式的调试工具。但是,如果是在UNIX下开发软件,就不得不提GDB调试工具,因为它具有比上述图形化调试工具更强大的功能,如修复网络断点及恢复链接等。二、GDB有啥用?    一般来说,GDB可以帮助我们完成下面四点功能:    启动程序,可以按照自定义的要求...

2018-05-27 11:19:04 1511

原创 经典C语言面试题6:进程与线程的关系和区别

一、定义进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程:是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可以和同属于一个进程的其他线程共享进程所拥有的的全部资源。二、关系和区别一个线程可以创建和撤销另一个线程;同一个进程中的多个...

2018-04-22 15:24:18 6814

原创 经典C语言面试题5:大端(big endian)与小端(little endian)的区别?

一、大端与小端的名字由来在乔纳森·斯威夫特的著名讽刺小说《格列夫游记》中,小人国内部分裂成Big-endian和Little-endian两派,区别在于一派要求从鸡蛋的大头把鸡蛋打破,另一派要求从鸡蛋的小头把鸡蛋打破。斯威夫特借以讽刺英国的政党之争,在计算机工业中指数据储存顺序的分歧。(ps:名字由来真草率!)二、概念大端模式(big endian):数据的高位字节保存在内存的低地址中,而低位字节...

2018-04-22 10:53:47 3149 1

原创 经典C语言面试题4:字节对齐的作用

   一、什么是字节对齐?     在现代计算机中,内存空间都是按照字节(byte)划分的。从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是,访问特定类型的变量的时候经常在特定的内存地址访问,这就需要各种类型的数据按照一定规则在空间上排列,而不是顺序地一个接一个地排放,这种所谓的规则就是字节对齐。这么长一段话的意思是说:字节对齐可以提升存取效率,也就是用空间换时间。例如:struc...

2018-04-21 22:19:59 8427 3

原创 Robot Framework中RIDE编辑器快捷键汇总

一、简介Robot Framework 是一款基于 Python 编写的功能自动化测试框架,具备良好的可扩展性,支持关键字驱动,并可同时测试多种类型的客户端或接口。Robot Framework的特点如下:易于使用,采用表格式语法,统一测试用例格式复用性好,可利用现有关键字来组合新关键字支持变量,支持if语句和for循环语句提供标签功能,可对测试用例进行分类,并有选择的执行执行报告和日志采用htm...

2018-04-19 17:53:19 4394

原创 经典C语言面试题3:位域。

1、为什么要用位域?     在计算机中,有些信息存储时并不需要占用一个完整的字节,而只需占用一个或几个二进制位。比如在存放一个只有0和1两种状态的开关量时,用一位二进制位即可表示。因此,为了节省存储空间,C语言提供了一种称为“位域”的数据结构来充分利用存储空间。    位域的主要实现方式:把一个字节中的二进制位划分为几个不同的区域,并说明每个区域的位数,每个域有一个域名,允许在程序中按域名进行操...

2018-04-01 17:51:58 2320

原创 经典C语言面试题2:static关键字的用法?

C语言中static关键字的用法主要有以下三种:1、在函数体内,static变量的作用范围为该函数体,该变量的内存只能被分配一次,下次调用时维持上次的值(即具有记忆功能)。2、在模块内的static全局变量可以被模块内的所有函数访问,但是不能被模块外的函数访问(注:即使在模块外的函数中加extern也不行)。3、在模块内的static函数只可以被模块内其他函数调用,此函数的作用域被限制在声明它的模...

2018-04-01 16:36:51 2813

原创 经典C语言面试题1:malloc 和 new的区别?

①、malloc/ free是 C++/C语言的标准库函数,而new/ delete是C++的运算符。②、malloc内存分配成功返回的类型为void*,需要通过强制类型转换将void*转换为我们需要的类型。③、new内存分配失败时会抛出bac_alloc异常,不会返回NULL;而malloc分配失败时则返回NULL。④、使用new操作符申请内存分配是无需指定内存块的大小,而malloc则需要显式...

2018-04-01 12:48:28 2457

原创 C语言编译过程

C语言编译过程为:预处理--&gt;编译--&gt;汇编--&gt;链接1、预处理(Pre-processing)     对源程序中的伪指令(以#开头的指令)和特殊符号进行处理。伪指令包括:宏定义指令、条件编译指令、头文件包含指令。2、编译(Compiling)     将源程序转换为计算机可以执行的二进制代码。     说明:在linux下,目录文件的缺省后缀为 .o      编译程序将通过...

2018-04-01 12:14:06 1890

libxml2-2.9.1.tar.gz

libxml2是一个用来解析XML文档的函数库。它用 C 语言写成,并且能被多种语言所调用,如 C、C++、XSH、C#、Python、Kylix、Delphi、Ruby、PHP 等。 注:先解压得到libxml2-2.9.1.tar.gz文件,然后再拷贝到linux系统中安装。 linux中具体的安装步骤如下: 1、解压:tar zxvf libxml2-2.9.1.tar.gz 2、进入解压后的安装目录:cd libxml2-2.9.1 3、安装分为以下3步:      ./configure make make install 安装完毕。

2020-02-18

Source Insight 4.0最舒服的护眼主题

此主题为Source Insight 4.0护眼主题配置文件,格式为.xml,下载后直接在Options->Load Configuration选中确定即可。主题背景色为豆沙绿,字体类型为Dejavu Sans Mono,欢迎下载使用!

2018-05-14

《信息存储与管理:数字信息的存储、管理和保护》PDF高清完整版

《信息存储与管理》中文版是2010年人民邮电出版社出版的图书,作者是G.Somasundaram(美国)。该书适合作为高校信息管理专业的教材或参考书,同时也非常适合信息管理专业技术人员、IT经理人等专业人士阅读参考。 《信息存储与管理:数字信息的存储、管理和保护》是一本系统全面的存储技术书籍。它所涵盖的概念、原理和方案部署理念贯穿了整个信息存储和管理技术的范畴,本书包含4个部分,主要阐述:数据存储和数据管理面临的挑战,智能化存储系统,存储网络(EC-SAN、IP-SAN、NAS),备份、恢复和归档(包括CAS),业务连续性和冗灾,存储安全和虚拟化,存储基础架构的管理和监控等。 目录如下: 第1部分 存储系统 第1章 信息存储与管理的介绍 3 第2章 存储系统环境 21 第3章 数据保护:RAID 51 第4章 智能存储系统 71 第2部分 存储网络技术和虚拟化 第5章 直连存储和SCSI介绍 99 第6章 存储区域网络 117 第7章 网络连接存储 149 第8章 IP SAN 171 第9章 内容寻址存储 189 第10章 存储虚拟化 207 第3部分 业务连续性 第11章 业务连续性概述 229 第12章 备份和恢复 251 第13章 本地复制 283 第14章 远程复制 309 第4部分 存储安全与管理 第15章 确保存储基础设施安全 335 第16章 管理存储基础设施 363 附录A 缩略语 395 附录B 术语表 411 英文索引 449 ……

2018-04-10

C程序设计语言(第2版·新版)

本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。

2018-04-03

几种Xshell 5护眼配色主题文件下载

主题文件.xcs,直接导入就可以用。具体步骤为 打开xshell,右键空白处--选择“配色方案”,然后选择对应的.xcs文件导入即可。

2018-03-26

空空如也

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

TA关注的人

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