自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C语言字符串函数大全

函数名: stpcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例:#include  #include int main(void) {    char string[10];    char *str1 = "abcdefghi";   stpcpy(stri

2017-05-26 20:22:06 308

转载 深入理解C语言指针的奥秘

摘自:http://bbs.csdn.NET/topics/100021521指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。   先声明几个指针放着做例子:   例一:   (1)int*ptr; 

2017-05-25 21:44:21 310

转载 数组指针和指针数组的区别

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;    

2017-05-24 20:28:23 372

转载 理解一般指针和指向指针的指针

理解一般指针和指向指针的指针relation:http://blog.csdn.net/g200407331/article/details/52610175在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例: 1. 指向整型指针先看如下示例: View Code  1 #include  2 using namespace std;

2017-05-23 19:35:16 341

转载 数组指针和指针数组

1、数组指针(指向数组的指针)(1)数组在内存中的表示创建一个数组就是在内存里面开辟一块连续的空间,比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的内存空间。二维数组是特殊的一维数组。先来看一段代码:[cpp] view plain copy"font-size:16px;">void main()  { 

2017-05-22 19:47:35 223

转载 大端小端 && 网络字节序

(0)背景:网络上的数据流是字节流,对于一个多字节数值,在进行网络传输的时候,先传递哪个字节?也就是说,当接收端收到第一个字节的时候,它是将这个字节作为高位还是低位来处理呢? (1)网络字节序定义:收到的第一个字节被当作高位看待,这就要求发送端发送的第一个字节应当是高位。(2)网络字节序为大端序列:在发送端发送数据时,发送的第一个字节是该数字在内存中起始地址对应

2017-05-21 18:46:59 320

转载 字符串练习

#include void fun(char p1[], char p2[]){int i=0;int j=0;while(p1[i] != '\0'){   i++;}while(p2[j] != '\0'){   p1[i] = p2[j];i++;j++;}p1[i] = '\0';}main()

2017-05-20 15:20:32 184

转载 简单理解Socket及TCP/IP、Http、Socket的区别

题外话前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看HTML5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括PHP的、C#的、甚至Node.js的

2017-05-19 22:43:04 491

转载 时间复杂度和空间复杂度

没有挤公交来上班过,就不知道生活的压力有多大。算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数

2017-05-18 17:20:09 235

原创 数据库与文件进行数据存储有哪些区别?

其区别在于:(1)文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据。(2)文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离。(3)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据。(4)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。 其联系在于:(1)均为数据组织的管理技术。(2)均由数据管理

2017-05-17 20:15:40 1359

转载 数据结构-线性表

1. 线性表:n个数据元素的有序集合。线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个

2017-05-16 18:15:03 280

原创 1. makefile的作用是什么?

makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。    makefile带来的好处就是——“自动化编译”,一旦写好,只需要

2017-05-15 13:09:38 845

转载 希尔排序算法

希尔排序算法定义:          希尔排序是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。算法思想:          希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序,随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分为一组,算法终止。   时间复杂度:         O(N)

2017-05-14 17:26:48 211

转载 数组指针和指针数组的区别

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;    

2017-05-13 23:19:24 193

转载 数据结构和算法

前言2016年又是一个全新的开始,每到一年的这个时候,总是颇有感慨。想对过去的一年做一些总结,但又觉得经历和精力总是不够。俗话说,一年之计在于春,当然,新的一年,也总是计划着N多事情,想做什么事情?做到什么程度?哪些一定要做好?哪些一定要完成?每一年都会列出来,到最后却发现,在这走过的一年里,有时候完全没有按照原定的路线执行。所以,针对于此,我便不再对自己进行规划,当然并不代表没有目标。我

2017-05-12 20:21:49 186

转载 【数据结构】C语言实现栈的进栈,出栈,遍历,清空等操作

学完链表后就学了栈,一直想用代码实现下,可是要打工啊·······都连续加了两晚夜班了,累死了······今天休息,用了些时间写了写,还是和以前一样希望和新手一起学习,也希望得到大神指导。看代码吧,注释不合适的地方,请见谅······#include #include #include // 定义一个节点的结构typedef struct node{

2017-05-11 21:03:28 1025

转载 C语言100个经典的算法

POJ上做做ACM的题语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?________________________________

2017-05-10 21:39:36 316

转载 数据在内存中的存储方式

一、数据概述以C语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的。比如说int,bool,float等等。这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型是架通人类思维 与 计算机的桥梁。我们知道。依照冯诺依曼体系,计算机中并没有这些int  float等等,而全部都是0和1表示的二进制数据,并且计算器只能理解这些0和1的数据。所以说,所有的

2017-05-09 21:37:59 17077 1

转载 数据结构之--图的讲解与C语言实现

数据结构–图图是研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,图中任意元素之间都可能相关。图的应用极为广泛,已渗入到诸如语言学、逻辑学、物理、化学、电讯、计算机科学以及数学的其它分支。图的定义一个图(G)定义为一个偶对(V,E) ,记为G=(V,E) 。其中: V是顶(Vertex)的非空有限集合,记为V(G);E是无序集V&

2017-05-08 20:51:35 422

转载 C++二叉树的建立与遍历

从别处找来几个例子,感觉还可以,同学们拿回去看看吧,有什么地方不懂可以下可以后来实验室问我。[cpp] view plain copy print?//==========================================定义头部  #include   using namespace std;  struct BiTNode{   char data

2017-05-07 20:35:31 405

转载 野指针

讨论一什么是野指针?  一个母亲有两个小孩(两个指针),一个在厨房,一个在卧室,(属于不同的代码块,其生存期不同)母亲让在厨房的小孩带一块蛋糕(指针指向的对象)给在卧室的小孩,这样在卧室的孩子才肯写作业。但这个在厨房的小孩比较淘气,他在走出厨房时自己将蛋糕吃了,没能带出来。而在卧室的没有吃到蛋糕,所以不肯完成他的作业。结果母亲却不知道卧室的孩子没有吃到蛋糕,还以为作业完了。结果第二天她就被

2017-05-06 17:18:45 347

原创 指针练习

//编写一个通用函数,该函数实现对数值类型数组的倒序#include #define N 6int fun(int *p,int n){    int temp;    int *i=p;    int *j=p+n-1;    while(j>i)    {        temp=*i;        *i=*j;        *j=tem

2017-05-05 21:24:22 217

转载 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次

2017-05-04 21:23:48 145

原创 OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStatHook()

[cpp] view plain copy 当用OSTaskCreate()或OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用用户的移植实例的用户扩展µC/OS-Ⅱ的功能。当µC/OS-Ⅱ设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是禁止的。因

2017-05-03 20:39:12 641

原创 指针练习

//输入一个字符串,内有数字和非数字字符,如a123X456  17960? 302tab5876 将其中连续的数字作为一个整数,//一次存放到整数型数组a中,例如123放到 a[0],456放到 a[1]中,统计有多少个整数,并输出这些数;#include #include void main(){  char b[100];      int  a[100]

2017-05-02 21:44:34 300

原创 指针练习

//已知数组内容如下 s[] = {1,2,3,4,5,6,7,8,9},输入一个常数 m(1//数组后移3个位置后的内容为{7,8,9,1,2,3,4,5,6}#include int main()  {      int a[] = {1,2,3,4,5,6,7,8,9};      int b[9] = {0};      int *p = a;     

2017-05-01 21:34:39 164

原创 4.30 删除字符串中的空格

#include #include #include char str[50];char str_2[50];//用数组实现char delete_space(char a[50]){    char temp[50];    int i = 0;    int j = 0;    while(a[i] != '\0')    {    //

2017-04-30 21:09:27 344

转载 单向链表实现堆栈

单向链表实现堆栈要求:1 使用C语言;2 使用单向链表;3 接口规范,通用性强;解:1 链表元素的类型确定为了最终确定这两个函数的调用模型,你还需要知道进出堆栈的数据是属于哪种类型的。也就是说,你得声明一个struct结构作为链表元素的数据类型。如果没有特殊要求,应该考虑使用无类型指针来实现一个通用的解决方案。基于无类型指针的struct结构和函数调用模型如下所示:

2017-04-29 21:58:11 1690

原创 4.28

............................

2017-04-28 23:53:59 175

转载 µC/OS-Ⅱ移植

这一章介绍如何将µC/OS-Ⅱ移植到不同的处理器上。所谓移植,就是使一个实时内核能在某个微处理器或微控制器上运行。为了方便移植,大部分的µC/OS-Ⅱ代码是用C语言写的;但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为µC/OS-Ⅱ在读写处理器寄存器时只能通过汇编语言来实现。由于µC/OS-Ⅱ在设计时就已经充分考虑了可移植性,所以µC/OS-Ⅱ的移植相对来说是比较容易的。如果已经有人在您使

2017-04-27 22:29:22 968

原创 4.26

舍歌大赛

2017-04-26 23:03:32 192

原创 4.25

.........................................................

2017-04-25 23:06:31 142

原创 fflush()

头文件:#includefflush()不是标准库文件,经笔者测试,VC6.0完美支持,GCC(GCC4.6.2)不支持。fflush()用于清空文件缓冲区,如果文件是以写的方式打开 的,则把缓冲区内容写入文件。其原型为:    int fflush(FILE* stream);【参数】stream为文件指针。【返回值】成功返回0,失败返回EOF,错误代码存于e

2017-04-24 23:18:41 252

原创 lianbiao

链表的创建,增加、删除节点,链表的逆序、排序和销毁等。[cpp] view plain copy #include  #include    typedef struct node  {      int data;      node* pNext;  }Node;    //链表的操作,以有头节点为例,

2017-04-23 23:35:21 163

原创 4.22

差点忘了。。。。。。。

2017-04-22 23:53:17 143

原创 数据库常用命令

、MySQL常用命令create database name; 创建数据库use databasename; 选择数据库drop database name 直接删除数据库,不提醒show tables; 显示表describe tablename; 表的详细描述select 中加上distinct去除重复字段mysqladmin drop

2017-04-21 23:35:22 157

原创 线程资源的回收

在写网络服务器程序时可能需要实现多线程接收多个客户端的数据,我实现方式比较傻,死循环等待client的connect,connect之后创建thread,这样其实有一个问题,服务器程序需要长期运行,长时间线程的创建,线程资源的回收就是一个问题。Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是

2017-04-20 23:24:17 677

原创 setsockopt()

setsockopt ()函数用于任意类型、任意状态套接口的设置选项值。尽管在不同协议层上存在选项,但本函数仅定义了最高的“套接口”层次上的选项。选项影响套接口的操作,诸如加急数据是否在普通数据流中接收,广播数据是否可以从套接口发送等等。   有两种套接口的选项:一种是布尔型选项,允许或禁止一种特性;另一种是整形或结构选项。允许一个布尔型选项,则将optval指向非零整形数;禁止一个选 项op

2017-04-19 23:26:28 2229

原创 密码

int mygetch(){    struct termios oldt;    struct termios newt;    int ch;    tcgetattr(STDIN_FILENO,&oldt);    newt = oldt;    newt.c_lflag &= ~(ICANON|ECHO);    tcsetattr(STDI

2017-04-18 23:28:12 255

原创 connect

主要是创建一个套接字用于与服务端交换数据,并且通常它会迅速返回,此时并没有数据通过网卡发送出去,而紧随其后的connect函数则会产生网络数据的发送,TCP的三次握手也正是在此时开始,connect会先发送一个SYN包给服务端,并从最初始的CLOSED状态进入到SYN_SENT状态,在此状态等待服务端的确认包,通常情况下这个确认包会很快到达,以致于我们根本无法使用netstat命令看到SYN_SE

2017-04-17 23:11:29 254

空空如也

空空如也

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

TA关注的人

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