自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rannianzhixia的博客

在快乐中学习 在学习中快乐

  • 博客(34)
  • 收藏
  • 关注

原创 经典游戏——贪吃蛇

1.   题目描述      小时候都玩过贪吃蛇这个经典的小游戏,在我们的普通手机里似乎都是必备的。它伴随着我们的童年,经历了好多好多时光。它带给我们了许多的乐趣。学习了c++这门编程语言后,我就想着能不能把它做出来,在我查看了相关知识后,明白了其中的道理,就尝试着自己写出这个小游戏来,而且加入了许多可玩性的东西,包括等级选择,暂停/继续和分数制。整个程序采用了类和数组的相关知识实现。 2

2017-09-08 14:18:05 1273

原创 大数据的四则运算

(一)大数据的应用       很多时候我们会面临计算机内置数据类型不够用的情况,比如说我们要统计全世界QQ用户的年访问量,这个数据将非常的庞大,VS开发平台最大的整型是long long 其范围是最大值9223372036854775807,最小值-9223372036854775808。16进制表示最大值0x7ffffffffffffff最小值为0x8000000000000000。(

2017-09-08 13:48:15 699

转载 对比线程安全和可重入函数

可重入函数     函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入。      当程序运行到某一个函数的时候,可能因为硬件中断或者异常而使得在用户正在执行的代码暂时终端转而进入你内核,这个时候如有一个信号需要被处理,而处理的这个信号的时候又会重新调用刚才中断的函数,如果函数内部有一个全局变量需要被操作,那么,当信号处理完成之后重新返回用户态恢复中

2017-07-12 12:39:36 354

原创 函数重载

一、函数重载      (C++支持函数重载,C语言不支持函数重载)       1、重载函数是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数、类型、顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。         2、在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,

2017-07-11 09:22:59 438

原创 读者写者模型

一、读者写者模型    读者:只读数据区中的数据     写者:只往数据区中写数据 要求:    (1)允许多个读者同时执行读操作;    (2)不允许读者、写者同时操作;    (3)不允许多个写者同时操作。     我们知道在一些程序中存在读者写者问题,就是对某些资源的访问会存在两种可能的情况:一种就是写操作,写操作是可以独占资源的,也就是具有排他性;另一种情况就是

2017-06-19 09:54:59 1069

转载 用回调函数实现冒泡排序

(一)什么是回调函数呢?       答:回调函数就是通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。(二)回调函数的实现机制        1.定义一个回调函数        2.提供函数实现的一方在初始化时。将回调函数的函数指针注册给调用者。        3.当特定的条件发生时,调用者

2017-06-19 08:46:53 539

原创 排序之----冒泡,直接插入,选择排序

学过编程的应该都知道,排序算法有很多种,想把每种算法的基本思想搞懂弄清确实得下一番功夫,今天我先介绍几种简单的,冒泡排序,直接插入排序和选择排序,一定要弄清楚每种方法基本思想的差异。1,冒泡排序(升序)基本思想:       相邻的两个元素进行比较,如果前一个元素大于后一个元素,则交换二者位置,接着继续向后循环比较直到最后一个元素,这样一趟下来就可以将最大的那个元素放到最后的位置。完成

2017-06-19 08:11:02 352

原创 进程间通信--共享内存

一、共享内存介绍1.共享内存是三个IPC(Inter-Process Communication)机制中的一个。它允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在进行的进程之间传递数据的一种非常有效的方式。大多数的共享内存的实现,都把由不同进程之间共享的内存安排为同一段物理内存。2.共享内存是由IPC为进程创建一个特殊的地址范围,它将出现在该进程的地址空间中

2017-06-14 16:31:20 393

原创 进程间通信--消息队列

一,什么是消息队列**消息队列(System V标准)提供了一种从一个进程向另一个进程发送一个有类型数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。支持双向通信。二 ,在Linux中使用消息队列1.创建新的消息队列或取得已存在

2017-06-13 10:48:05 254

原创 生产者-消费者模型

一、生产者-消费者模型是指:1.  生产者进行生产将物品放入仓库,同一时间只能有一个生产者将物品放入仓库,如果仓库满,生产者等待。2.  消费者从仓库中取出物品,同一时间只能有一个消费者取出物品,如果仓库空,消费者等待;3.  生产者将物品放入仓库时消费者不能同时取;4.  消费者取物品时生产者不能放入物品;二、生产者/消费者模型的优点1、解耦,即降低生产者和消费者之间

2017-06-13 09:04:57 391

原创 字符串函数——strcpy 、strncpy 、strcat、 strncat、 strcmp 、strncmp、 memcpy、 memmove)

1.strcpy#define  _CRT_SECURE_NO_WARNINGS 1#include #include#include#includechar* my_strcpy(char *dest, const char *scr){ char *ret=dest;   assert(dest);   assert(scr); while(*dest++=*scr++

2017-06-10 20:30:36 249

原创 linux--死锁(产生死锁的原因、条件和避免方法)

一、死锁的概念:      如果一组进程(或线程)中的每一个进程(或线程)都在等待仅由该组进程中的其他进程(或线程)才能引发的事件,那么该组进程(或线程)是死锁的(Deadlock)。二、产生死锁的原因 :(一)竞争不可抢占资源引起死锁如:共享文件时引起死锁 系统中拥有两个进程P1和P2,它们都准备写两个文件F1和F2。而这两者都属于可重用和不可抢占性资源。如果进程P1

2017-06-10 19:30:17 1949

原创 面试题--调整数组顺序使所有的奇数位于偶数前面

调整数组顺序,使所有的奇数位于偶数前面      这是一个面试的时候经常会遇到的题(正所谓的面试题),当拿到这个题目,你首先会想到的是遍历这个数组每碰到偶数时,拿出这个数字与其后的数字交换,但这样的话其时间复杂度为O(n*n)若面试官没有时间复杂度的要求,那么这样就可以了但是往往不能体现出你的能力,你还可以优化    1)我们可以维护两个指针,第一个指针指向数组第一个数字第二个

2017-06-05 15:58:39 459

原创 Linux--模拟实现一个shell

什么是shellshell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接受用户输入的命令并把它送入内核去执行。 实际上shell就是一个命令解释器,它解释有用户输入的命令并且把它们送到内核。不仅如此,shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。shell变成语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编

2017-05-28 17:30:15 4177 1

原创 linux--管道及管道容量

管道管道(pipe) 管道是进程间通信的主要手段之一。一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端。管道是一种特殊的文件,它不属于某一种文件系统,而是一种独立的文件系统,有其自己的数据结构。根据管道的适用范围将其分为:无名管道和命名管道。● 无名管道 主要用于父进程与子进程之间,或者两个兄弟进程之间。在Linux系

2017-05-28 17:25:54 1924

原创 linux 进程之僵尸进程与孤儿进程

1:想知道运行的进程是什么意思,就需要知道进程的不同状态。一个进程可以有几个1状态(在linux内核里,进程有时候也叫作任务)。在linux环境中通常有如下进程状态:    R (running)   //运行状态 表明进程要么是在运行中要么在运队列。      S (sleeping)  //浅度睡眠状态      D (disk sleep)//不可中断睡眠

2017-05-04 19:58:35 371

原创 const关键字详细解析

1、const定义常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。2、cons的主要作用(1)可以定义const常量,具有不可变性。例如:const int Max=100; int Array[Max];(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如:void f(const

2017-05-03 21:10:43 282

原创 模拟实现库函数strcpy之assert和const的用法

模拟实现库函数strcpy要求:把字符串src(源空间)复制到一分配好的字符串空间dest(目标空间)中。void my_strcpy(char *dest, char *src){ while(*src != '\0') { *dest++ = *src++; *dest = *src; src++; dest++; } *dest =

2017-05-01 23:12:15 635

原创 Linux中进程控制块(PCB)的task_struct结构描述

进程描述:        在linux中,广义上,所有的进程信息被存放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。进程控制块:       每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息。Linux内核的进程控制块是task_struct结构体。task_struct是Linux内核的一种数据结构,它会被装载到RAM并且包含着进程的信息。每个进程都

2017-04-22 14:10:51 1170

原创 扫雷(用C语言编写扫雷游戏)

用C语言编写扫雷游戏是很有趣的哦,在学习中游戏,在游戏中学习^_^game.h文件#ifndef __GAME_H__#define __GAME_H__enum OPTION{ PLAY, EXIT};#include#include #include #include#define ROW 11 #define COL 11#

2017-04-20 20:05:03 5732 5

原创 五子棋 (用C语言编写五子棋游戏)

game.h 文件#ifndef __GAME_H__#define __GAME_H__enum OPTION{ EXIT, PLAY};#include #include #include #include #define ROWS 5#define COLS 5void init_board(char board[ROWS][COLS], int row

2017-04-20 17:56:01 26067 3

原创 猜数字游戏 2

猜数字游戏,一起来在游戏中学习吧!

2017-04-06 11:26:17 510

原创 Linux下的粘滞位

Linux下的粘滞位详解  1.产生粘滞位的原因:  Linux下有一个用于存放临时文件的目录 /temp,每一个用户产生的临时文件都存放在 /temp目录下面,而且每个用户都对于这些文件具有写权限,为了防止用户对于除自己外的其他用户的文件进行删除操作,所以产生了粘滞位。  2.什么是粘滞位: 上图所示的t就是所谓的粘滞位;  对于权限为77

2017-03-29 22:35:07 446

原创 Linux中find指令详解

find指令:        Linux下find命令在目录结构中搜索文件,并执行指定的操作。 Linux下find命令提供了相当多的查找条件,功能很强大。由于 find具有强大的功能,所以它的选项也很多,其中大部分选项都值 得我们花时间来了解一下。即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人

2017-03-28 11:23:29 514

原创 打开虚拟机时因出现一个VMware Autheffication选择框而打不开的解决方法

VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.The VMware Authorization Service is not running。打开虚拟机时,出现一个内容为

2017-03-27 19:06:37 1518 1

原创 vs下程序运行结果框闪退的三种解决方案

用VS写c/c++程序,运行结果框总是会一闪而退,根本看不到程序运行的结果,真是令人烦躁,那么现在,我就告诉大家三个解决办法,希望能帮到大家方法一:       在return 0;语句前加一个getchar();语句,getchar会一直等在输入,程序运行结果框就正常显示运行结果了。如下图所示 方法二:       在程序末

2017-03-27 10:29:52 36048 13

原创 linux 的各种命令

linux的命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。

2017-03-25 17:42:42 317

原创 Linux 之三个时间属性(Acess , Modify , Change)

你知道linux环境下Acess time , Modify time , Change time 分别是什么时间吗?又应该用什么方式去修改它们呢?

2017-03-24 13:34:55 285

原创 linux环境下 进入已有目录 创建文件 并显示文件 各至少需要什么权限

在linux环境下,进入已有的一个目录,至少需要什么权限?在目录下创建文件,并且显示文件,又需要什么权限呢???

2017-03-24 10:02:43 1234 1

原创 用C语言实现猜数字游戏

#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>/*#define EXIT_FAILURE*/ int main(){ int start = 1; while (start) { printf("请选择:\n"); printf("****

2017-03-23 20:58:34 19910

原创 C语言之(for循环)模拟用户登录情景

编写代码实现,模拟用户登录情景,并且只能登录三次(只允许输入三次密码,如果密码正确则提示登陆成功,如果三次均输入错误,则退出程序。)#include #include int main (){int i = 0; char passwd[30] = {0}; for (i = 0;i < 3;i++) { printf ("请输入密码:>"); scanf ("%s",pa

2017-03-22 14:39:31 1373 1

原创 linux常见指令与权限管理

初识Linux操作系统 ,一定要了解Linux权限概念与思想,并且练习使用Linux常用命令哦@ - @ 《鸟哥私房菜基础学习篇 第二部分》这也是一本值得你花费时间的学习资料呢

2017-03-20 11:14:45 608 1

原创 斩退路 赢出路

斩退路 赢出路     我始终相信斩断自己的退路,才能更好的赢得出路。     在很多时候,我们都需要一种斩断自己的退路的勇气,因为身后有退路,我们才会心存侥幸和安逸,前行的脚步也就会放慢,换句话说,如果身后无退路,我们才会集中全部精力,勇往直前,为自己赢得出路。

2017-03-19 10:06:09 402

原创 谈今天的我

我是一名学生,一名自信不服输的女学生,汉子一样的我安静时喜欢练练软笔听听歌,但这个世界总逃不过喧嚣与烦躁,我总会以笑脸去迎接它们和前方路上的各种困难,大大咧咧的性格是因为我热爱生活,偶尔那一丝不苟的认真却是因为坚持心中那小小的梦想。       我同大多数小女生一样喜欢各种明星,不同的是我从不盲目追捧,我向往小鸟一样自由的生活,也幻想沉浸在属于自己的小酒吧中,我崇拜那些成功人士的功成名就,也憧

2016-11-24 12:32:44 331 1

空空如也

空空如也

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

TA关注的人

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