自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【排序1】插入排序:直接插入&希尔排序

总:插入排序: 直接插入 希尔排序交换排序: 冒泡排序 快速排序选择排序:直接选择 堆排序归并排序桶排序一、直接插入排序从第一个元素起,将该元素认为是已排序的 取出下一个元素,在已排序好的元素序列中从后向前扫描 如果该元素(已排序)的元素大于新的元素,将该元素移动到下一个位置 重复 3 ,直到找到已排序元素小于或者等于新元素的值 将新元素插入到该位...

2019-03-29 19:26:10 204

原创 【动态内存3】已经有了malloc/free为什么还要有new/delete???

malloc/free和new/free的相同点:都是做内存的动态开辟,并且都是管理堆上的内存,都必须成对出现,否则会造成内存泄漏。malloc/free和new/free的区别:(1)本质区别: malloc与free是函数 new与delete是关键字(2)开辟内存方式不同:例:C语言int *p = (int *)mallo...

2019-03-11 17:48:43 151

原创 【动态内存2】:C++中的内存开辟与释放&&底层实现

new与delete是用于开辟内存与释放内存,用于堆内存管理的两个关键字(标识符),与C语言中的malloc/free对应,new与delete相较于malloc和free实现机制更为复杂,new申请空间时还会调用构造函数,delete释放空间时还会析构函数。注意:new/delete ;malloc 与free都要成对使用哦!!!以免内存泄漏一、new的用法 new是关键字,返回...

2019-03-11 16:32:00 444

原创 【动态内存1】:C中内存开辟与销毁

C语言动态内存开辟与销毁:包含在头文件<stdlib.h>中(一)malloc:开辟一块内存(1)原型:void*malloc(size_t size);void* 类型可以强制转换为任何其它类型的指针,但反过来就不行了(2)开辟方式:void*malloc(size_t size);//参数为开辟数据类型*开辟数量,返回值为所申请空间的首地void*q = (i...

2019-03-10 21:03:02 320

原创 二分法查找(折半查找)

一、二分法查找思想首先从数组的中间mid开始查找,如果刚好等于要查找的值,则返回这个数字的所在位置。 如果要查找的数字比mid值小,则让mid-1,做为数组的右边界,重复(1)操做;如果要查找的数字比mid大,则让mid+1做为数组的左边界,重复(1)操作。 如果left=right时,还没有找到该数字,则此数字不存在于这个数组当中。如图:二、二分法查找的前提条件必须是顺序表...

2019-01-06 16:29:32 404 1

原创 递归初识

一、什么是递归所谓递归,简单点来说,就是一个函数直接或间接调用自身的一种方法,每调用一次就进入新的一层。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归函数必须有结束条件。当函数在一直递推,直到遇到结束条件后返回,所以递归要有两个要素,结束条件与递推关系二、递归的简单应用 第一个人的年龄为十岁,第二个人的年龄比第一个人年龄大两岁,以此类推,求第五个人的年...

2019-01-05 23:30:24 156

原创 C/C++之间的相互调用

C调用C++意思是  .c文件中调用.cpp文件中的代码C++调用C的意思是.cpp文件中调用.c文件中的代码使用extern "C" 主要原因:主要用于在C++代码中调用的C函数的声明,或C++中编译的函数要在C中调用,也即是导入C形式的函数库或者提供C类型的库给C调用,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语...

2018-12-04 15:57:49 482

原创 函数默认值&&重载&&inline函数

一、函数默认值c89:  不支持带有默认值的函数        c++99: 支持带有默认值的函数默认值注意事项:1、默认函数一般写在声明中2、自右向左依次赋值(即设置默认值时应该从右至左),因为实参的传递是从前至后。如若不是这样则报错。3、默认值只能赋一次4、默认值的限制:不能赋局部变量 能使用全局变量和静态变量 可以是函数调用int Compare(in...

2018-11-27 18:00:35 208

原创 函数的堆栈调用

让我们带着问题来阅读本篇文章型参在哪里开辟内存? 型参的入栈顺序? 函数返回值怎么带出来? 函数的返回值为什么会回退到栈里? 函数调用结束为什么会沿着调用点继续执行?我们先来了解一下堆与栈是怎样的一种存在什么是栈?栈用于维护函数调用的上下文,离开栈,函数就没有办法实现。栈通常在用户空间的最高地址处分配,通常有数兆字节大小。栈在程序运行中具有举足轻重的地位。最重要的是,栈保...

2018-11-27 13:27:25 346

原创 4G虚拟地址空间分配

虚拟地址的分配:Linux:用户空间:内核空间 = 3:1windows:用户空间:内核空间 = 2:2(虚拟地址低空间,即从0x00000000~0X7FFFFFFF的2GB为用户空间,而高地址0x80000000~0xFFFFFFFF被分配给了系统内核。)图下研究的为Linux下的4G虚拟空间接下来我们从上至下依次解释一下这些:3G用户空间:1、保留区保留区1...

2018-11-23 23:10:50 1114

原创 编译,链接原理

从程序源代码到最终可执行文件需要四步:一、预编译(生成.i文件)预编译过程主要处理那些源代码文件中的一“#”开始的预编译指令。入:“#define”、“#clude”等。1、将所有的“#define”删除,并且展开所有的宏定义。2、处理所有条件预编译指令,比如:“#if”“#ifdef”“#elif”“#else”“#endif”3、处理“#include”预编译指令,将被...

2018-11-18 11:07:07 215

原创 Linux操作系统下的vim/vi操作

文本编辑:vim/vi + filename三种模式:命令模式(a  i   o   O)j进入插入模式(编辑模式)                   编辑模式(ESC)退回命令模式                   命令模式(: ? /)进入末行模式i:插入模式                                                          ...

2018-11-04 17:39:33 219

原创 Linux文件基本操作

绝对路径:从开始指定一个文件存储的位置相对路径:从当前目录开始指定文件存储的位置cd 路径    切换当前工作目录pwd 显示当前工作目录的绝对路径ls  显示当前工作目录下的数据项(文件)通过命令: ls  -l  显示文件的详细属性信息linux上一切皆文件    linux上并不以扩展名来区分文件类型文件分类:    普通文件  -   (  .c   ....

2018-10-17 18:28:01 184

原创 二维数组

特点:先行后列,行优先。例:int  brr[3][4]={{1,2,3,4};{5,6,7,8};{9,10,11,12}}int arr[3][4]={1,2,3,4,5,6,7,8}//和一维数组一样,没有的默认为0,如图:int err[][4]={1,2,3,4,5}//行可以省略,列不可以。一维数组与二维数组的对比:一维int arr[4]//长度为4的一维数组arr         ...

2018-04-19 23:17:10 175

原创 C中常变量 const的应用

const int a=3      表示a被定义为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。     常变量与常量的异同是:常变量具有变量的基本属性:有类型,站存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量。有名字便于在程序中被引用。const:int a=10;//a 可读可写int b;b=a;// a 的读权限a=20;//a 的...

2018-04-14 02:06:36 305

原创 求n进制

例:如果在某系统,等式15*4=112成立,则系统采用的是()进制A、6       B、 7       C、8     D、 9第一种方法: 若数字较小,可以试出来。即:(1*6+5)*4=1*6^2+1*6+2      下同第二种方法:观察结果的个位为,两个乘数个位相乘,进位后余数为结果的个位即: 4*5=20    20%6=2例:假设在n进制下,下面的等式成立,567*456=1502...

2018-04-11 23:24:36 397

原创 字符串拷贝完整表述

#include <stdio.h>第一种Void Mystrcpy1(char *des,char *src){    int i; For(i=0;src[i]!=’\0’;i++) {Des[i]=src[i]}Des[i]=’\0’; }第二种Void Mystrcpy2(char *des,char *src){ int i;for(i=0;src[i]!='\0’;i++)...

2018-04-09 23:29:18 180

原创 指针与数字

1.   指针+数字指针加法需要调整,调整的权重为sizeof(指针去掉一个*)                       P1+3                       P1+1(3和1为权重)Int*p1     p1++  加sizeof(int)shaort*p2  p2++  加sizeof(short)double*p3  p3++  加sizeof(double)int *p...

2018-04-09 23:01:34 509

原创 小小小的总结

一个整型4个字节,一个字节8个位Int arr[10]={1,2,3};Int *p = arr;*p=10;P++;*p=20;指针做+运算时:1:加一个字节  X 1 2 3           ...

2018-04-08 17:54:54 164

原创 指针初识

int a;int b;//整型变量。int *p;//p是整形指针变量;p=&a;//整型地址变量,保存整型地址。int*p=&a;//说明p是指针变量a    10 &a 1000b    20&b 2000&a:取地址符取地址:&+变量名,地址==指针,地址就是指针。*p:间接访问符,解应用。*p=1...

2018-04-08 17:52:55 128

原创 计数器及位数统计(给一个不多于5位的正整数,要求)

例题:给一个不多于5位的正整数,要求第一问:求出它是几位数                   第二问:分别输出每一位数字                                        第三问:按逆序输出个位数字,例如原数字为321,应输出123.                            第三问中若n为负数,有if语句,输出结果为首位带符号,如图           ...

2018-03-31 08:48:51 4392

空空如也

空空如也

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

TA关注的人

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