自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux线程相关知识总结

Linux系统下的线程概述:首先我们必须先明确Linux系统下没有真正的线程,因为Linux下的线程是以进程的PCB模拟实现的。所以说Linux下的线程也叫轻量级进程。(我在多个系统下看到,它们各自有各自的名字)那我们这里就先明确一下,以前说的PCB进程实际上是是一个单线程的进程。而真正的进程实际上是多个线程组成的线程组。那么问题来了,我们在Linux系统下通过ps -ef命令...

2018-12-02 18:14:26 246

原创 Linux系统下的进程

进程的概念:冯诺依曼体系结构:现代计算机应该具备哪些硬件设备?输入设备—键盘/鼠标输出设备—显示器运算器——CPU控制器储存器—内存硬件结构决定软件行为:数据流向所有的硬件都是围绕储存器来工作存储器指的都是内存操作系统:一款搞管理的软件与硬件进行交互,管理软硬件资源为上层应用提供良好的执行环境管理体系...

2018-11-28 02:56:25 409

原创 Linux操作系统标准编译器

gcc编译器:GNU编译器套件(GNU CompilerCollection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端gcc编译器的编译过程:C语言代码解释成为机器可识别的指令需要经过几个阶段:预处理:展开所有代码编译:纠错-》将C语言代码编译为汇编代码汇编:将汇编代码再解释为机器代码gcc常用选项:-S:生成汇编...

2018-11-26 02:15:29 584

原创 Linux程序地址空间

概述程序地址空间,如果更加好理解的说,应该叫进程地址空间。因为程序是一些死代码,他们并非在内存上,而是安安静静的躺在硬盘上,只有执行程序,变成进程时才有内存的进程地址空间。先上一个内存的空间布局图这感觉也没什么,就是内存的分布图,但是我们再把进程引入进来。观察一下。#include <stdio.h> #include <unistd.h> ...

2018-11-19 14:08:51 456

原创 C语言实现八大排序算法详解及其性能之间的

概述排序是数据结构中的重要一节,也是算法的重要组成部分。主要分为内部排序以及外部排序,今天我们讲内部排序,也就是八大排序。插入排序直接插入排序算法思想算法图解算法分析算法实现希尔排序算法思想算法图解算法分析算法实现选择排序简单选择排序算法思想算法图解算法分析

2018-11-13 04:07:21 5857 3

原创 哈希(Hash)数据结构,使用C语言实现s。傻瓜也能

哈希数据结构是一种非常简单,实用的数据结构。原理是将数据通过一定的hash函数规则,然后存储起来。使查找的时间复杂度近似于O(1)。进而大大节省了程序的运行时间。哈希表的原理如图原来的数据可以直接通过哈希函数存储起来,这样在搜索的时候,等于每一个数据都有了自己的特定查找号码,所以在查找时,可以通过哈希函数,一步直接找到(不考虑冲突)。所以时间复杂度,接近O(1)。但是哈希最大的困扰就是哈希函...

2018-10-24 18:31:16 3089 1

原创 【2018.10.10】简单结构体二叉树及其应用

简单结构体二叉树及其应用结构体二叉树的建立可以使用遍历或者递归,各有其特点,遍历代码复杂但是便于理解与阅读,递归理解更复杂,但是对应代码量要小很多1.首先时画出我们一会要创建的二叉树。说是树可我更觉得他像一个根型结构。这个二叉树在前序遍历里的结构是:ABD##E##C#FG.去掉空树(#)就是ABDECFG.首先是创建一个结构体,里面包含左右子节点。以及对应节点的数值。typedef c...

2018-10-13 23:20:43 2193

原创 【18.8.7】C语言注释向C++注释的转化

C语言注释对比C++注释,功能要明显差一些,因此,当程序中需要将C语言的注释转化时,就需要一个注释的转化软件。毕竟对于大量的代码,我们不可能一个一个的去更改。在编程初期,我们应该想到,对于C注释开始的识别,但会牵扯的/是除号。或者别的用途,包括结束时,*号的识别。做一个简单的情况分析后,总结出,将其各种情况,用一个状态机去解决。这样可以将无限种的可能,转化为有限种的情况。文本状态,C语言注释的...

2018-08-07 23:40:08 236

原创 【18.7.27】函数调用过程的深度理解(栈帧)

函数可以大大减少我们程序的代码量,使代码写起来更加的简洁,使代码思路更加清晰。是我们程序猿在编写代码时必不可少的。那么函数的调用过程就非常的重要,今天让我们来从一个深的角度去了解一下函数的调用过程。函数的调用过程也可以叫做栈帧栈帧的定义是:栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。每一次函数的调用,都会在内存中为自己申请一块空间,这个空间就...

2018-07-28 21:54:27 1059

原创 【18.7.25】扫雷c语言小游戏,展开与防第一次炸死功能

递归看了N遍终于写出来了展开功能,心塞。上效果图打开代码,control+F5,走!输入1开始游戏密集恐惧症,心里一万只草泥马路过。。。未打开前都是‘*’号,玩家根据行标和列标输入需要扫雷的位置就快要赢了,当然这个难度可能比较低,但是可以自行设置难度,我自己默认的是20*20的表格,20个大雷子。Test.c#define _CRT_SECURE...

2018-07-25 22:19:52 226

原创 【18.7.10】三子棋C语言小游戏,自制了判定规则。

欢迎使用Markdown编辑器写博客写了好久的博客一直在草稿箱忘了发,到发下一篇才看到。qAq。废话不说了上效果图。→_→代码点开,control+F5,走!输入开始游戏指令干掉电脑了,不过瘾的话再来一把接下来,是代码,将代码分为头文件game.h,游戏的核心文件game.c,和test.cGame.c(我把它叫做游戏的核心文件)初始化使...

2018-07-24 17:51:56 296

原创 【18.6.14】总结C语言中的操作符与表达式

  学习中总结出C语言中的操作符有众多。包括算术操作符,移位操作符,位操作符,赋值操作符等等。操作符是机会每一个编程中必须用到的。从简单的算术操作符+,-,*,/,%到赋值操作符=再到移位操作符<<>>等等等等每一个每一种都是加工数据必不可少的,可以说没有操作符,程序就没有意义。  A算术操作符,算术操作符就是我们数学中的加减乘除取余数。但是注意的是①C语言中的“×”用符号...

2018-06-15 00:10:35 257

空空如也

空空如也

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

TA关注的人

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