自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 sscanf(),spritnf(),fread(),fwrite()

sscanf函数原型:int sscanf(const char *buffer,const char *format,[argument]...);                  参数列表:  buffer:存储的数据;format:窗体空间字符串;argument:可选自变量;locale:要使用的区域设置                  作用:读取格式化的字符串中的数据...

2018-08-27 12:05:45 204

原创 蚂蚁爬行问题

问题描述:n只蚂蚁以每秒1cm的速度在长为Lcm的竹竿上爬行。当蚂蚁看到竿子的端点时就会落下来。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反方向爬行。对于每只蚂蚁,我们只知道它离竿子最左端的距离为xi,但不知道它当前的朝向。请计算所有蚂蚁落下竿子的最短时间和最长时间。解题分析:对于最短时间,我们可以考虑当所有蚂蚁都向(以中线为界)最近的端点移动时,这时不会发生两只蚂...

2018-07-18 15:16:53 1264

转载 malloc calloc realloc 之间的区别

(1)C语言跟内存分配方式<1>从静态存储区域分配.       内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.<2>在栈上创建       在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.<3&...

2018-07-03 08:07:36 127

原创 Vector_List类的基础实现

代码如下:/*带头循环双向链表类的基本实现 */ #include<iostream>using namespace std;typedef int DataType; struct ListNode { ListNode* next; ListNode* prev; DataType data; ListNode(DataType x) :dat...

2018-06-13 18:51:56 179

原创 深浅拷贝

代码如下://程序主要关注浅拷贝下的写时拷贝#include<iostream>#include<string.h>#include<assert.h>#pragma warning(disable:4996)using namespace std;// 1.现代写法 // 2.传统写法 // 3.字符串增删查改 class String ...

2018-06-04 18:05:29 89

原创 动态内存管理

1.new/delete 和operator new/operator delete和malloc/free的区别和联系?①它们都是动态管理内存的入口。②malloc/free和operator new/operator delete是c++标准库的函数,new/delete是c++操作符③malloc/free只是动态分配内存空间;而new/delete除了分配空间还会调用构造函数和析构函数进行...

2018-04-27 18:55:51 122

原创 fork ,system,popen

popen函数定义:FILE* popen(const char* command,const char* type);int pclose(FILE* stream);函数说明:popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数。pclose() 函数关...

2018-04-27 16:38:50 121

原创 进程创建的函数实现

#include<stdio.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<stdlib.h>#include<wait.h>void func(void* arg){ char* str=(char*)arg; pri...

2018-04-26 21:03:11 202

原创 简易shell的实现

1.基本思路:2.具体代码实现:#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>#include<sys/wait.h>char *argv[10];//数组指针int argc;void do_parse(char string...

2018-04-25 18:13:09 159

原创 拷贝构造函数的参数的类型只能是引用类型

正确的拷贝构造的函数体格式如下:       Date(Date& d){ if(this!=&d) { _year=d._year; _month=d._month; _day=d._day;   (1)首先明确一点:除了传引用不是传值外,其余的传参数都是传值。  (2)如果传参数是传值的话,对象调用类的拷贝函数,从而造成不断递归调用拷贝构造函数。         ...

2018-04-16 00:05:05 172

转载 软件安装-rpm,yum,源码安装

rpm 安装常用选项操作符作用rpm -ivh full_pkgname安装rpm -e pkgname卸载rpm -qa [pkgname]列出所有已经安装过的包rpm -ql pkgname列出一个已经安装的包安装了哪些文件rpm -qf file列出某个文件由哪个包安装rpm -qi file查询某个安装包的详细安装信息rpm –nodeps强制安装,而不用管其依赖的包rpm –force强...

2018-04-11 21:33:52 120

原创 彩色进度条的实现

#include<stdio.h> #include<string.h> #include<stdlib.h> #include<unistd.h> int main() { char buf[102]; memset(buf,0,sizeof(buf)); int i; for(...

2018-04-11 21:15:53 120

转载 常用编译器

一个现代编译器的主要工作流程:  源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。GCC家族:    Cygwin      Mingw32    DJGPP    Dev-C++(Mingw32)GNU GCC2.9...

2018-04-09 17:31:36 935

转载 vim配置文件

vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码4.按“F2”可以直接消除代码中的空行5.“F3”可列出当前目录文件,打开树状文件...

2018-04-09 17:18:06 116

原创 Centos系统语言->简体中文

1.切换权限到root: su2.查看当前系统语言:locate -a(会出现当前系统支持的语言)3.如果存在 zh_CN.utf8 ,表示系统支持简体中文4.编辑 i18n 配置文件: vi /etc/sysconfig/i18n5.进行如下配置并保存退出:#LANG="en_US.UTF-8"LANG="zh_CN.UTF-8"SYSFONT="latarcyrheb-sun16"...

2018-04-09 15:12:55 200

原创 常用的编辑器

1.vim:Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 [1]  VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器...

2018-04-03 16:49:22 373

原创 类和对象—const&内联&友元&static成员&构造函数的优化

1.const成员函数 (1)在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个const成员函数的对象在函数内不会被改变。(2)具体的const成员函数如例:void Display() const ,经过编译器的处理变为 void Display(const Date* this)(3)思考以下几种场景1. const对象可以调用非const成员函数和con...

2018-03-30 21:53:39 169

原创 类和对象—date

实现关于日期的常用计算,具体代码如下:#include<iostream>#include<assert.h>using namespace std;class Date { public: Date(int year = 1900, int month = 1, int day = 1) //构造函数:_year(year) ,_month(month) ...

2018-03-30 19:59:59 128

原创 类和对象

1.面向对象程序设计:概念:(Object Oriented Programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。2.类的大小?为什么要内存对齐?内存对齐的计算?空类的计算 :  ①类的内部可以分为:成员函数和成员变量,对于类的大小的问题:需要考虑成员变量所占的...

2018-03-20 14:45:58 107

原创 引用和指针

1.引用的概念及用法:  引用:引用不是定义一个新的变量,而是将已定义的变量起个新的名字,具体的表现方式:类型 &别名=已定义的变量名;  注意:①一个变量可以起多个别名;②引用必须初始化;③当一个变量起了别名之后,这个别名就不能被其他变量引用,即它只能是一个定义过的变量的别名;  (同时注意:const引用时,表示将定义过的变量修饰成具有常性的变量(即不能被修改)①当变量已被const修...

2018-03-20 14:14:02 93

原创 初入C++

1.介绍一下C++   C++:C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之.2.为什么C++支持重载?C语言不支持--重点   这与代码的编译过程有关系,对于C语言来说,函数的地...

2018-03-18 21:49:03 112

原创 布隆过滤器

大致思路:布隆过滤器是通过哈希函数使得字符串产生不同的无符号整数,再通过位图,一个字符串每产生一个整数,就将这个整数在位图中的位置由0置1,当一个字符串利用m个哈希函数产生m个整数在位图的位置都为1,我们大致可以认为这个字符串存在,否者不存在。具体代码如下:typedef char* KeyValue; typedef size_t(*HASH_FUNC)(KeyValue str); //这...

2018-03-13 16:04:29 65

原创 单向链表的实现

单链表的建立、头插、尾插、给定位置插入、尾删、给定位置删除、节点的查找、链表的销毁:#include<stdio.h>#include<string.h>#include<assert.h>#include<stdlib.h>typedef int DataType; //pHead:头结点 ppHead:指向pHead的指针 *ppHea...

2018-03-05 17:27:27 139

原创 哈希变形—位图(给定40亿个不重复的无符号数整数,没排过序,给一个无符号整数,如何快速判断一个数是否在这40亿个数中)

#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>typedef struct BitMap { size_t* _bits;//size_t _range;//}BitMap; void BitMapInit(BitMap* bm, si...

2018-03-01 18:55:18 374

原创 哈希表—拉链法

哈希表的建立,初始化,节点的插入,查找,删除及哈希表的销毁的相关代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>typedef int KeyType; typedef int ValueType;#define primesize ...

2018-03-01 17:32:55 421

原创 自定义类型的部分知识点

一、结构体类型的创建1.结构体是一些值的集合,这些值称为成员变量。2.结构体内的成员可以是不同类型的变量,也可以是标量,数组,指针甚至是其他的结构体。3.结构体的创建:例图:4.结构体内部成员的访问:(1).结构体变量访问成员(结构变量的成员是通过点操作符(.)访问的.点操作符接受两个操作数.如果s是结构体的具体名称,age是其内部成员,则s.age就可以访问)。(2)结构

2018-01-28 20:52:12 200

原创 C向C++的注释的转换

若想完成C注释向C++注释的转换:首先要识别注释语言的种类,例如://hello 是C++的注释标准,/*hello*/是C的注释标准,转换的过程就是指针指向的如果是相邻的// 则·照常输入·,如果·遇见换行,则进入普通状态,重新对下一个字符进行判断。如果遇见相邻的/*则需要进行C注释向C++注释的转换,即/*—>//的转换,C注释的开头标志转换成//之后,再需要进行注释标志结尾的查找,如果找

2017-12-07 17:40:27 156

原创 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针

在判断某某是指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针 其中的某一个之前,需要知道优先级大小关系:()>[]>*,这很重要。(1)指针数组:它是数组,是一个存放指针的数组。int *arr1[10] ; int *arr2[4]; char **arr3[5],这三种都是指针数组的定义。判断方法:就以 int *arr1[10]为例,[]优先级高于*,则ar

2017-11-21 21:27:25 190

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

关于可变参数列表源码的剖析以 求未知参数个数的平均值函数为例:源码如下:#include#includeint average(int n,...);#pragma warning(disable:4996)int main(){ int ret=average(4, 1,2,3,4); printf("%d\n",ret); return 0;}int average

2017-11-11 11:46:02 169

原创 函数调用过程,栈帧的创建和销毁

原码如下:#include #pragma warning (disable:(4996))int Add(int x,int y) { int sum = 0; sum = x+y; return (sum); } int main() { int a = 2; int b = 3; int re

2017-11-09 17:21:23 217

原创 c语言—三子棋

test.c:#define _CRT_SECURE_NO_WARNINGS 1 #include"game.h"void menu(){ printf("*************************************\n"); printf("****** 1.play game. 0.exit. ********\n"); }int main(){

2017-11-08 12:41:32 208

原创 初用博客

我是西安工程大学的一名大三计算机专业的学生,虽说是大三,但我觉得我的大脑关于编程还是一片空白,希望通过博客来督促自己,养成解析代码的好习惯,培养自己对于编程方面的兴趣。关于自己对于编程方面的目标,在最开始的时候当然希望自己能够写出合格的代码,一步一步做起,之后希望自己能成为一名合格的程序员,水滴石穿,一点一滴的丰富自己,希望在编程的这条路上可以走的更远。关于怎样学习编程的这个问题,我感觉在编程的开

2017-09-22 18:00:17 157

空空如也

空空如也

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

TA关注的人

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