<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hello_woo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hello_woo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hello_woo]]></copyright><item><title><![CDATA[利用哈夫曼树实现文件压缩和解压缩]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/81865171</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/81865171</guid><author>hello_woo</author><pubDate>Mon, 20 Aug 2018 08:20:05 +0800</pubDate><description><![CDATA[完成文件压缩与解压缩花了近一个星期的时间，期间，花了很遇到不少问题，花了很长时间去调试，最后完成了文本文件的压缩。通过调用库中的优先级队列实现哈夫曼树，基于哈夫曼树最终实现文件压缩。 
    ## 实现哈夫曼树（利用优先级队列） ##

#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;
#include...]]></description><category></category></item><item><title><![CDATA[进程间通信]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/81865114</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/81865114</guid><author>hello_woo</author><pubDate>Mon, 20 Aug 2018 07:53:48 +0800</pubDate><description><![CDATA[一. 实现pipe/msgqueue/sems/shm相关代码

1.实现pipe



1、write()
函数定义：ssize_t write (int fd, const void * buf, size_t count); 
函数说明：write()会把参数buf所指的内存写入count个字节到参数放到所指的文件内。
返回值：如果顺利write()会返回实际写入的字节数。当有错误发生时则返...]]></description><category></category></item><item><title><![CDATA[C++继承]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/80394221</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/80394221</guid><author>hello_woo</author><pubDate>Mon, 21 May 2018 16:40:23 +0800</pubDate><description><![CDATA[一，概念

1，继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手 
段，它允许程序员在保持原有类特性的基础上进行扩展，增加功能。这样 
产生新的类，称派生类。继承呈现了面向对象程序设计的层次结构，体现 
了由简单到复杂的认知过程。 
2，作用： 
（1）、继承可以减少重复的代码。比如父类已经提供的方法，子类可以直接使用，不必再去实现。 
（2）、继承是多态性的前提。当...]]></description><category></category></item><item><title><![CDATA[mallc]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/80049972</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/80049972</guid><author>hello_woo</author><pubDate>Mon, 23 Apr 2018 14:23:53 +0800</pubDate><description><![CDATA[三个函数的申明分别是:



       void* malloc (size_t size); 
        void* calloc (size_t num, size_t size);
        void* realloc (void* ptr, size_t size); 
        //ptr 是要调整的内存地
       // size 调整之后新大小


都在st...]]></description><category></category></item><item><title><![CDATA[C++类和对象]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79917760</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79917760</guid><author>hello_woo</author><pubDate>Thu, 12 Apr 2018 18:21:23 +0800</pubDate><description><![CDATA[一.引用.

1. 引用概念 
引用不是新定义一个变量，而是给已存在变量取了一个别名，编译器 
不会为引用变量开辟内存空间，它和它引用的变量共用同一块内存空 
间 
类型&amp;amp; 引用变量名(对象名) = 引用实体； 
int a = 10; 
int&amp;amp; ra = a;(必须和引用实体是同种类型) 
2. 引用特性 
a. 引用在定义时必须初始化 
b. 一个变量可以有多个引用 
c. ...]]></description><category></category></item><item><title><![CDATA[进程控制]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79835203</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79835203</guid><author>hello_woo</author><pubDate>Fri, 06 Apr 2018 17:29:13 +0800</pubDate><description><![CDATA[
编写shell. 




#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;unistd.h&amp;gt;
#include&amp;lt;sys/wait.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;

#include&amp;lt;string.h&amp;gt;
void do_shell(int argc,char*argv[])
        {
        pid_...]]></description><category></category></item><item><title><![CDATA[进程基本概念]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79776756</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79776756</guid><author>hello_woo</author><pubDate>Sun, 01 Apr 2018 11:46:11 +0800</pubDate><description><![CDATA[1.task_struct结构体： 
 在Linux下描述进程的结构体为task_struct结构体。它将会被装载到RAM（内存）里并且包含着进程的信息。  
task_struct内容分类：  
.标识符：描述本进程的唯一标识符。  
.状态：任务状态，退出代码等。  
.优先级：  
.:程序计数器：程序中即将被执行的下一条指令的地址。  
.内存指针：程序代码和进程相关数据的指针，还有和其他...]]></description><category></category></item><item><title><![CDATA[各种编译器和编辑器对比]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79760355</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79760355</guid><author>hello_woo</author><pubDate>Fri, 30 Mar 2018 17:02:55 +0800</pubDate><description><![CDATA[对比编辑器之间的区别和优缺点. 
vim是从vi发展出来的一个文本编辑器。代码补完、编译错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用。 
1 、Vim 
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 
2 、Eclipse 
Eclipse是一款很酷的开源代码编辑...]]></description><category></category></item><item><title><![CDATA[linux权限及指令]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79668884</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79668884</guid><author>hello_woo</author><pubDate>Fri, 23 Mar 2018 16:05:06 +0800</pubDate><description><![CDATA[linux权限及指令

1.进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.  
 cd：a.语法 cd 目录名（进入目录）      b.所需权限x 
 touch：a.语法 touch 文件名（创建文件）      b.所需权限wx 
 ls：a.语法 ls （显示当前目录下的所有文件）      b.所需权限rx 
 rm...]]></description><category></category></item><item><title><![CDATA[辗转相除法求最大公约数的原理]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/79293235</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/79293235</guid><author>hello_woo</author><pubDate>Thu, 08 Feb 2018 20:03:54 +0800</pubDate><description><![CDATA[假设有两个数x和y，存在一个最大公约数z=(x,y)，即x和y都有公因数z， 
那么x一定能被z整除，y也一定能被z整除，所以x和y的线性组合mx±ny也一定能被z整除。（m和n可取任意整数）

对于辗转相除法来说，思路就是： 
若x&amp;gt;y，设x/y=n余c， 
则x能表示成x=ny+c的形式， 
将ny移到左边就是x-ny=c，由于一般形式的mx±ny能被z整除， 
所以等号左边的x-ny（...]]></description><category></category></item><item><title><![CDATA[【单链表】环的入口点  原理理解]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78920722</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78920722</guid><author>hello_woo</author><pubDate>Thu, 28 Dec 2017 12:20:18 +0800</pubDate><description><![CDATA[题目：试判断一个链表中是否有环？若请找出该链表的环的入口结点？ 
1：判断链表是否带环： 
判断有环的方法就是用两个快慢指针p1、p2，p1的速度为P2的两倍，两个指针同时从链表的头结点开始出发，当两个结点再一次相遇且相遇点不是最后一个结点时，说明此链表有环。2：、若有环，找环的入口： 
 
① 
当P1和P2在PM相遇时： 
P1走过的路程（结点数）：S快=L+X+n*R； 
P2走过的路程（结点]]></description><category></category></item><item><title><![CDATA[字符串求长度]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78917163</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78917163</guid><author>hello_woo</author><pubDate>Wed, 27 Dec 2017 22:33:15 +0800</pubDate><description><![CDATA[char str[20]=”0123456789”;  
int   a=strlen(str); /*a=10;strlen 计算字符串的长度，以\0’为字符串结束标记。  
从代表该字符串的第一个地址开始遍历，直到遇到结束符NULL。返回的长度大小不包括NULL。 
strlen(…)是函数，要在运行时才能计算。参数必须是字符型指针（char*）。当数组名作为参数传入时，实际上数组就退化成指针了]]></description><category></category></item><item><title><![CDATA[交换两个数字的值]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78734152</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78734152</guid><author>hello_woo</author><pubDate>Wed, 06 Dec 2017 19:24:32 +0800</pubDate><description><![CDATA[交换俩个数字 
1^0=1; 
1^1=0; 
交换 a和b的值 
a=a^b; 
b=a^b;//此时a=a^b, 
            //b=a^(b^b),  
            //b=a^0; 
            //b=a;   
b=a^b 
//同理可得此时b=a；]]></description><category></category></item><item><title><![CDATA[指针]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78624954</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78624954</guid><author>hello_woo</author><pubDate>Fri, 24 Nov 2017 16:06:00 +0800</pubDate><description><![CDATA[1 
指针数组：array of pointers，即用于存储指针的数组，也就是数组元素都是指针 
数组指针：a pointer to an array，即指向数组的指针 
 
eg 
 int a[4]* 
 指针数组：  因为[]优先级高于，数组a中有4个元素都为int型指针 
int (*a)[4]  
 数组指针：a先和*结合，说明a是一个指针变量，然后指着指向的是一个大小为4个整型的数组。]]></description><category></category></item><item><title><![CDATA[扫雷]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78314225</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78314225</guid><author>hello_woo</author><pubDate>Sun, 22 Oct 2017 22:50:17 +0800</pubDate><description><![CDATA[game.h
#ifndef __GAME_H__
#define __GAME_H__

#include
#include

#define ROWS  6
#define COLS  6
#define num   4  //雷数

void game();
void set_mine(int arr[ROWS][COLS], int row, int col);
void show_set]]></description><category></category></item><item><title><![CDATA[三子棋]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78314151</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78314151</guid><author>hello_woo</author><pubDate>Sun, 22 Oct 2017 22:41:48 +0800</pubDate><description><![CDATA[game.h

#endif#ifndef __GAME_H__
#define __GAME_H__

#include
#include

#define ROWS  3
#define COLS  3

void game();
char check_win(char arr[ROWS][COLS], int rows, int cols);
static int is_full(char]]></description><category></category></item><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78237559</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78237559</guid><author>hello_woo</author><pubDate>Sat, 14 Oct 2017 22:27:45 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[数组相关知识]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78237248</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78237248</guid><author>hello_woo</author><pubDate>Sat, 14 Oct 2017 21:51:45 +0800</pubDate><description><![CDATA[一：一维数组
1：int arr[  ]     []内为常量：int a=1;a+2;
[]下标引用操作符
char arr1[] = "abc";
内存：abc\n
char arr2[3] = {'a','b','c'};
内存存放：abc
2：数组为自定义类型。int arr[10]={0}; sizeof(arr)          大小输出：40
           ]]></description><category></category></item><item><title><![CDATA[C语言操作符总结]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78175135</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78175135</guid><author>hello_woo</author><pubDate>Sun, 08 Oct 2017 15:14:57 +0800</pubDate><description><![CDATA[一，分类
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员
二，
1，算术操作符
 + - * / %
2，移位操作符
a  
  eg       ：

b >> 右移操作符
首先右移运算分两种：1. 逻辑移位：左边用0填充，右边丢弃]]></description><category></category></item><item><title><![CDATA[我的第一篇博客2017]]></title><link>https://blog.youkuaiyun.com/hello_woo/article/details/78006900</link><guid>https://blog.youkuaiyun.com/hello_woo/article/details/78006900</guid><author>hello_woo</author><pubDate>Sat, 16 Sep 2017 21:52:48 +0800</pubDate><description><![CDATA[大学生活过的不是想象中的那样精彩，但是时间还是过的飞快。我已经是一名大三的学生了，但我不知道有什么可以比较擅长的东西可以为自己的简历加分。现在想想有很多事情应该早早准备，不然错过了好的机会就会成为心中永远的痛。
所以我要从新努力学习编程,在平时学习时首先把基础的书读懂，然后多上机实践，最后总结和分享自己所学习到东西，为找一份自己满意的工作努力。
1>写一个自我介绍。 
2>列出你编程的目标。]]></description><category></category></item></channel></rss>