自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux下用C语言实现一个简单的彩色进度条

Linux下实现一个简单的进度条效果图源代码遇到的问题背景和字体颜色表Linux下的常用光标操作效果图源代码#include <stdio.h>#include<unistd.h>int main(){ printf("\033[2J"); //清屏 printf("\033[?25l"); //隐藏光标 int color = 3...

2018-10-04 22:09:45 1158 2

原创 Linux软件安装的几种方式

Linux系统的软件安装方式1.源码安装特点安装步骤卸载rpm包安装特点安装步骤卸载步骤升级步骤yum/apt安装软件包特点安装步骤卸载步骤1.源码安装特点文档齐全因为可以定位到代码,所以debug方便本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)编译麻烦缺乏自动依赖管理,软件升级麻烦安装步骤1.通过各种渠道获取到软件的源码包(...

2018-10-04 17:12:35 505

原创 Linux下C语言程序的调试

在Linux中调试C语言程序1.编译时添加调试信息2.使用调试命令进行调试gdb调试器语法gdb模式下的命令[^1]**readelf命令**ELF文件类型ELF文件作用ELF文件总体组成选项1.编译时添加调试信息使用gcc -g -o [生成文件名] [源文件名]来编译生成一个带调试信息的可执行文件例如:gcc -g -o test.debug test.c加上-g选项以后,gcc在编译...

2018-10-04 16:07:11 3244

原创 编译器汇总~

各种编译器gcc/g++基本用法执行过程Turbo C基本使用java编译器python解释器CPythonIPythonPyPyJythonIronPythongcc/g++GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。...

2018-10-04 15:08:27 739

原创 Linux下的编辑器整理

Linux下的编辑器Linux编辑器行编辑器ed全屏幕编辑器vi/vimAtomSublime TextGeditGNU EMacsnanoKwriteBracketsGeanyJEDLinux编辑器行编辑器ed在早期的unix平台上,ed可以说是唯一的编辑工具。它是一个很古老的行编辑器,vi这些编辑器都是从ed 演化而来。行编辑器使用起来很不方便,每次只能对一行进行操作。而后面介绍的p...

2018-10-04 14:35:31 1614

原创 Linux重要命令整理(df、du、top、free、pstree、pstack、su、adduser/useradd、passwd)

Linux的几个重要命令df命令du命令top命令top交互命令free命令第一部分Mem行解释第二部分(-/+ buffers/cache)解释第三部分是指交换分区pstree命令pstack命令su命令su - 用户名su -s 用户名adduser(useradd)命令passwd命令df命令df [选项] [参数]df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以...

2018-10-02 20:06:03 643

原创 Linux根目录浅析

Linux根目录浅析Linux系统目录根目录(/)/bin -用户二进制文件/sbin -系统二进制文件/etc -配置文件基本文件: -所有直接放在/etc目录下的文件归类为基本文件;服务器目录:如samba、http、vsftpd等服务器配置相关目录;系统目录:-如sysconfig、xen或网络配置等与系统运行相关的目录;安全性目录:-如selinux或pam.d等管理系统安全性的目录;X ...

2018-10-02 18:26:59 745

原创 浅谈Linux系统中的权限

Linux权限理解Linux权限用户权限超级用户普通用户文件权限文件访问者的分类文件访问权限的分类umask命令粘滞位课堂上的基本命令自行练习.进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/...

2018-10-02 16:45:06 458

原创 二叉树的前中后和层序遍历详细图解(递归和非递归写法)

我家门前有两棵树,一棵是二叉树,另一棵也是二叉树。 遍历一棵二叉树常用的有四种方法,前序(PreOrder)、中序(InOrder)、后序(PastOrder)还有层序(LevelOrder)。 前中后序三种遍历方式都是以根节点相对于它的左右孩子的访问顺序定义的。例如根->左->右便是前序遍历,左->根->右便是中序遍历,左->右->根...

2018-08-27 17:01:53 71736 29

原创 Given a link list,remove the n th node from the end of list and return its head.

题目:Given a link list,remove the n th node from the end of list and return its head.Note: Given n will always be valid. Try to do this in one pass.给一个单链表,让你删除它的倒数第n个结点。 这个题目很简单,可以先遍历一遍求出...

2018-08-07 01:52:30 575

原创 C语言小游戏---------------------五子棋

这是一个用C语言实现的控制台小游戏—-五子棋,棋盘大小和获胜棋子数目是用宏定义的,可以自定义,所以可以轻松改为三子棋、六子棋等等。此游戏设定为人机对战(PVE),电脑走棋是随机的。编译环境:VS2015此程序采用多文件编译,共有三个文件,一个game.h头文件,一个game.c文件和一个main.c文件,代码分别如下:game.h这里是一些数据和函数的声明#ifndef...

2018-08-01 16:43:12 3255 4

原创 对C++引用的理解

C++中引用是个非常重要的概念,引用是在C++中新增的一种复合类型,是已定义的变量的别名。但是这种别名有什么作用呢?难道只是为了给变量起个绰号?并不是,引用变量的主要作用是用作函数形参,通过使用引用变量作为函数参数,函数将使用原始数据,而不是使用数据的副本,这样除了指针之外,为函数访问原始数据提供了另一种快捷的方法,还有,对于设计类来说,引用也是必不可少的。引用变量的定义注意:...

2018-07-31 02:25:15 375

原创 C语言小游戏---------------扫雷

这是一个用C语言实现的控制台扫雷小游戏,实现了随机布置炸弹、扫描炸弹、标记炸弹、百分百第一次不被炸死等功能。编译器:vs2015功能模块图源代码#include<stdio.h>#include<stdlib.h>#include<time.h>void show(int cbd[10][10],int u[10][1...

2018-07-29 12:28:01 1251

原创 详解C语言中的结构体、枚举、联合、位段、结构体内存对齐

详解C语言中的结构体、枚举、联合、位段1.结构体 结构是一些值的集合,这些值称为成员变量。结构的成员可以是不同类型的变量。声明声明的整体框架为:struct 结构体名{ 类型 变量名; ... 类型 变量名;}变量名;举个栗子:struct Student{ //声明一个学生结构体 int id; ...

2018-07-22 19:42:33 561

原创 C语言数组基础知识总结

在平时编程的过程中,我们不免要用到一组或者很多组数据,这些数据具有相同的类型,如果挨个去定义就会很麻烦,也不便于使用,这个时候我们就可以将一组相同类型的数据定义为一个数组。概念数组就是一组相同类型的元素的集合。定义数组的定义格式为: 类型+数组名【数组里的数据个数】 例如:int a[10]; //定义一个长度为10的整型数组char arr[5...

2018-06-27 17:59:30 1517 1

原创 C语言栈帧----对函数调用过程的理解

在C语言中,函数是个很重要的概念,平时写代码也会经常用到函数,可是在调用一个函数时在内存中是怎样实现的呢,下来这篇文章就谈谈函数在内存中的调用过程。函数运行的环境—栈帧首先要引入的一个概念叫栈帧,从逻辑上讲,栈帧就是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等等。 栈帧的地址是由高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧...

2018-06-23 17:13:19 390

原创 C语言对指针的深入理解

在C语言中指针是个很重要的概念,指针可以做许多事情。 它还有一些高级应用,这篇文章将对指针数组、数组指针、函数指针、函数指针数组``````函数指针数组、指向函数指针数组的指针这几个比较绕口、也比较容易混淆的概念进行详解。指针数组顾名思义,按照语文的理解方式来讲。指针数组首先是一个数组,这个数组的每个成员都是指针类型。数组指针同样,数组指针首先是一个指针,然后这个指针...

2018-06-19 21:00:55 455

原创 C语言操作符总结

C语言运算符是说明特定操作的符号 ,它是构造C语言表达式的工具 。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。操作符分类算术运算符移位运算符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式...

2018-06-19 19:43:42 196

原创 可变参数列表源码剖析

C语言中的可变参数列表,顾名思义,在C语言中有一些特殊的函数,它们的参数不是固定的,可以是多种类型的任意多个参数。比如最常用的printf函数和scanf函数,通过使用可变参数列表,使函数可以接收>=1个的多种类型的参数。用printf函数的原型来举例子:int printf(const char *format,...) ,后面的“...”就是可变参数列表,它在函数定义时作占位符,用来接受...

2018-06-17 17:21:58 228

原创 字符串模式匹配KMP算法的实现---------“strstr()”函数的实现

strstr()函数原型:extern char *strstr(char *str1, const char *str2);作用:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。如: char str1[]="ababcabcd",str2[]="abcabcd"; char *s; s=strstr(str1,str2)...

2018-06-14 15:18:16 516

原创 一个超凶的五子棋

C语言写的一个五子棋程序,写的比较简单,电脑走棋用的是随机数,然后电脑会非常菜(囧)。

2017-08-12 11:15:43 389

原创 C宏#define的一些用法

C语言中的#define命令,在编译预处理时进行简单的字符替换。其使用的一般形式为:#define 标识符 字符串其中的“#”表示这是一条预处理指令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。1.最常见的一种用法也是最简单的一种用法,用#define PI3.141592653589793238

2017-08-11 11:50:00 575

原创 宏函数和函数的区别及其优缺点

宏定义,编译预处理指令,在编译预处理时即进行简单的字符替换,也只进行简单的字符替换。而宏定义的函数和用户定义的函数在使用时有什么区别?如下:

2017-08-11 10:17:09 7390 1

原创 位运算实现两个整数相加

不使用+,-,*,/,++,--等运算,用位运算实现计算两个整数相加之和

2017-07-25 11:55:33 1178

原创 不用if,for等关键字计算1+2+...+n的结果

这个程序使用构造函数和静态数据,不使用if,for等关键字实现计算1+2+...+n的结果

2017-07-25 11:44:30 488

原创 对内存对齐和位域的理解

内存对齐内存对齐,为了提高程序性能,数据结构(栈)在保存时应该尽可能地在自然边界上对齐。我自己的理解是,如果没有内存对齐,cpu在访问某些未对齐的数据时,要进行两次访问才能读取完数据;而如果是内存对齐的数据,cpu以整块整块的访问,只需要进行一次访问就能读取到数据。在一次访问中就可以减少近一半的响应时间,在进行成千上万次访问时会大大减少程序响应时间,进而大大提升计算机的运算速度。

2017-07-23 10:06:19 417

原创 对栈桢的初步理解

自己对栈桢的理解:对函数的调用过程。每个函数的每次调用,都有它自己独立的ebp和esp,cpu只有一份ebp和esp,esp和ebp永远保存最新当前函数的值。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),我们称为栈底指针,寄存器esp指向当前的栈帧的顶部(低地址),我们称为栈顶指针。

2017-07-17 10:18:48 1260

原创 2048小游戏

用C++写的一个小游戏,没用到类。开始用的清屏函数来刷新屏幕,但是屏幕闪烁严重,最后采用了移动光标方法来刷新屏幕,使游戏过程中屏幕不会闪烁。

2017-07-06 02:55:10 377

原创 String类的部分实现和测试

对String类的部分功能模拟实现和测试

2017-07-06 02:43:40 331

空空如也

空空如也

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

TA关注的人

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