y6_xiamo
码龄7年
关注
提问 私信
  • 博客:31,063
    31,063
    总访问量
  • 56
    原创
  • 1,304,861
    排名
  • 10
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-11-04
博客简介:

y6_xiamo的博客

查看详细资料
个人成就
  • 获得17次点赞
  • 内容获得4次评论
  • 获得50次收藏
创作历程
  • 1篇
    2019年
  • 49篇
    2018年
  • 6篇
    2017年
成就勋章
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Git中“ LF will be replaced by CRLF in... ”警告解决方法

原因不同操作系统行尾结束符不一样: Uinx/Linux ---
(LF); windows --- \r
(CRLF)在windows下用git拉取文件,会自动用CRLF替换掉LF; 同样,用git提交文件时,也需要将CRLF替换成LF。但是这个转换有时会出错,比如中文字符有换行符时。解决方法那么怎么消除掉这个警告呢?1.在git上配置通过设置core.autocr...
原创
发布博客 2019.07.27 ·
1267 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++ --- 引用

指针我们之前了解过了,它也是一个变量,存的是地址,那引用是什么呢?什么是引用引用不是定义一个新的变量,而是给已经定义的变量重新起一个别名。定义的格式为: 类型 & 引用变量名 = 已定义过的变量名;引用的特点: 1.一个变量可取多个别名; 2.引用必须初始化; 3.引用只能在初始化的时候引用一次,之后不能改变,再引用其他的变量。普通引用void Te...
原创
发布博客 2018.08.22 ·
281 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C/C++动态内存管理

C语言动态内存管理C语言使用malloc、calloc、realloc来进行动态内存的管理。 malloc仅仅开辟一块空间,calloc开辟空间的同时并把它初始化为0,而realloc可以进行动态内存的调整。前面博客中已经介绍了这三个函数,在此不再赘述。 浅谈malloc、calloc和realloc//C动态内存管理void Test(){ int *p1 = (int...
原创
发布博客 2018.08.20 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用const、enum、inline代替宏

上面博客中我们主要区分了宏和函数的区别,了解了宏给我们带来方便的同时也有其自身的弊端。比如:下面这个例子:#define N 1024定义了一个常量,这时我们的程序运行时出错了,出错的地方刚好是我们定义的常量,这时编译器会抛出错误信息,提示1024有错,如果我们忘了1024表示什么?就会一直追踪1024去定位错误所在。 可是错误信息为什么是1024,而不是N呢?因为在预处理阶段,已经...
原创
发布博客 2018.08.20 ·
421 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

宏和函数的区别

先来看下面的这段代码:#include <stdio.h>#define Max(a,b) a * b == 8 ? a * b : bint max(int a,int b){ if(a * b == 8) { return a*b; } else { return b; }}int...
原创
发布博客 2018.08.19 ·
1173 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

string类的实现

class String{public: String(const char* str = "") :_size(strlen(str)) ,_capacity(_size) { _str = new char[_size+1]; strcpy(_str,str); } //swap(s1,s...
原创
发布博客 2018.08.19 ·
168 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

日期类的实现

 #include<iostream>using namespace std;class Date{public: //四个默认成员函数 // //构造函数 Date(int year = 2018,int month = 9,int day = 1) { _year = year; _month =...
原创
发布博客 2018.08.19 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈malloc、calloc和realloc

malloc、calloc和realloc是动态内存开辟的函数,在了解他们之前先想一下为什么要动态内存开辟? 我们以前开辟内存时是通过下面这种方式:int val = 10; //在栈上开辟四个字节char arr[10] = {0};//在栈上开辟10个字节的连续空间这种方式是在栈上开辟内存,有以下特点: 1.开辟的空间是固定的; 2.数组在声明的时候,必须指定数组的长度,它...
原创
发布博客 2018.08.13 ·
192 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

string函数的实现

我们在学C语言的时候,用了很多的处理字符和字符串的库函数,今天我们就自己实现一下这些和字符串相关的库函数。1.求字符串的长度(strlen)字符串是以’\0’作为结束标志的,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包括’\0’)。 这里注意:strlen的返回值是size_t无符号的。 下面代码用三种方式实现了strlen://借助指针size_t m...
原创
发布博客 2018.08.08 ·
437 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

编译过程

一个源文件到可执行程序到底经历了哪几个过程? 它的编译链接过程分为四个步骤:预处理、编译、汇编、链接。1.预处理1)处理所有的#include预编译指令,将被包含的文件插入到预处理指令的位置。这个过程是递归的。 2)将所有的#define删除,并展开所有的宏定义。 3)处理所有的预处理指令,比如:#if、#denif、#ifdef、#else。 4)过滤掉所有的注释 “//” ...
原创
发布博客 2018.08.07 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

结构体的内存对齐

首先,先来算一下,下面的这个例子,这些结构体的大小是多少呢?struct s4{ char c1; struct s3 a; double b;};struct s3{ double b; char c; int i;}s3,*p;struct s2{ char c1; char c2; int i;...
原创
发布博客 2018.08.02 ·
193 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

sizeof和&取地址

我们知道通过sizeof可以求得一个变量的大小,通过&符号可以取一个变量的地址,那当它们对一个变量或者数组操作时又有何不同呢?1. sizeof   首先,sizeof不是函数,而是一个表达式,可以求变量或者类型所占空间的大小.    1).变量      sizeof求变量的大小时可以不加(),如:sizeof a;但是求类型必须加(),sizeof(int) 。    ...
原创
发布博客 2018.08.01 ·
1671 阅读 ·
2 点赞 ·
2 评论 ·
6 收藏

浅谈大小端

 一般是如何看待一个类型的呢?我们应该从以下两个方面去考虑:1>开辟空间的大小  2>如何识别内存中的数据我们要想知道数据在内存中是如何存储的,以及怎样去识别,就要了解大小端。 可是为什么会有大小端之分?因为在计算机系统中,是以字节为单位的,每个地址单元对应一个字节,我们知道一个字节占8个bit位,除了8bit的char,还有16bit的short,32bit的int...
原创
发布博客 2018.07.29 ·
179 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅析const

1.const修饰变量 const修饰的变量不能被改变,当const修饰指针时:  1) 如果const在 * 左边,表示指针变量可以改变,但是指针变量指向的内容是不可以通过指针来改变;    int num = 10;     const int * p1 = #     *p1 = 20;  //运行出错,不可以通过指针变量来修改num     pr...
原创
发布博客 2018.07.26 ·
175 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

static的用法

1.static修饰局部变量     static修饰局部变量 —— 改变生命周期,不改变作用域;     static局部变量只被初始化一次,下一次依据上一次结果。 void test(){ //int num = 0;//临时变量,test 函数栈帧销毁, num随即释放 static int num = 0; //num被static修饰,改变了其生命周期...
原创
发布博客 2018.07.26 ·
494 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

数据结构 --- 常见排序算法(1)

排序:就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。我们通常所说的排序算法往往指的是内部排序算法,及数据记录在内存中进行排序。 而外部排序指的是数据元素太多不能同时放在内存中,根据排序过程的要求不能在内存之间移动数据的排序。排序算法大致可分为两种: 一种是比较排序,时间复杂度在 O(nlogn)~O(n^2)之间,主要由:冒泡排序、选择排序、插入排序、堆排序、希...
原创
发布博客 2018.06.06 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构 --- 开散列处理哈希冲突(哈希桶)

开散列什么是开散列? 开散列法又叫链地址法(开链法)。 首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于统一子集合,每一个子集合称为一个桶,各个桶中的元素通过单链表连接起来,各链表的头结点存储在哈希表中。假如一个元素集合的关键码为{37,25,14,36,49,68,57,11},散列表为HT[12],表的大小为12,散列函数为Hash(x) = x % 1...
原创
发布博客 2018.06.03 ·
841 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

数据结构 --- 闭散列处理哈希冲突(线性探测)

#include <stdio.h>#include<stdlib.h>#include"hash.h"///////////////////////////////////////////////////////该哈希表基于哈希函数,存储的是健值对类型//////////////////////////////////////////////////////...
原创
发布博客 2018.05.31 ·
574 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

数据结构 --- 哈希简介

我们在前面提过的顺序搜索和二叉搜索树中,元素存储位置和元素各关键码之间没有对应关系,因此在查找一个元素时,必须要经过关键码的多次比较。搜索的效率取决于搜索过程中元素的比较次数。因此我们就在想,有没有一种理想的搜索方法,可以不经过任何的比较,一次直接从表中得到要搜索的元素。 通过构造一种存储结构,用某种函数使得元素的存储位置和他的关键码之间能够一一对应起来,那么在查找时可以通过该函数快速地找到...
原创
发布博客 2018.05.30 ·
288 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

数据结构 --- 二叉搜索树的操作(递归和非递归版本)

二叉搜索树又称二叉排序树,它要么是一颗空树,要么满足以下性质: 1)如果左子树不为空,则左子树上所有节点的值都小于根节点的值; 2) 如果右子树不为空,则右子树上所有节点的值都大于根节点的值; 3)它的左右子树也分别为二叉搜索树。如图所示: 接下来,我们对二叉搜索树进行插入、查找和删除操作:正式操作前的一些准备工作:typedef char Searc...
原创
发布博客 2018.05.23 ·
176 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多