自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OOP实现大整数的加减

这里介绍的只是大整数的加减法,加减法相对来说比较容易理解;如果一个数的前面有很多0或者有空格的话,要删除。加法:要考虑到进位的情况,循环的时候 ,要从最低位开始,还得考虑两个数的数位长短问题;减法:要考虑到借位的情况,还得判断两个数的大小问题,后面的就和加法差不多了。#include "stdafx.h"#include<iostream> //c++的i/o输入和输出us...

2019-03-18 17:50:16 259

原创 sizeof()和strlen的区别

首先得区别清楚:sizeof()是运算符,在头文件的类型为unsigned int,其运算值在编译时就计算好了,参数可以是指针、数组、类型、对象和函数等;strlen()是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化为指针了。该函数完成的功能是从代表该字符串的第一个地址开始遍历的,直到遇到结束符NULL。返回的长度大小不包括NULL。...

2019-03-18 17:44:24 13976 12

原创 求1-1000之间的完数有哪些????

*思路:首先,应该知道什么是完数?? 完数:即完全数,又称完美数或完备数,是一些特殊的自然数。它所有的真因子之和刚好等于它本身。所以,如果一个数恰好等于它所有的真因子之和,则称该数为“完全数”。接下来,就按照这个想法,建立一个容器,循环遍历1-1000之间的每一个数,找出一个数的真因子,存入容器,同时判断因子之和是否等于这个数;若等于,则从容器中打印出此数和它的因子;若不等于,则把容...

2019-03-12 20:16:13 4743

原创 浅谈TCP/IP协议栈

TCP/IP协议栈是一系列协议的总和,是构成网络通信的核心骨架,它定义了电子设设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP协议采用4层结构,分别是应用层、传输层、网络层和网络接口层,每一层都呼叫它的下一层所提供的洗衣来完成自己的需求,下层的事情不用我们操心; 当通过http发起一个请求时,应用层、传输层、网络层和网络接口层的相关协议依次对该请求进行包装并携带对应的首部,最终...

2019-03-11 17:27:31 306

转载 Linux中fork函数

1、fork简介 一个进程,包括代码、数据和分段配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量的不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新进程中,只有少数值与原来的进程的...

2018-09-08 23:12:47 632

原创 BF算法与KMP算法

BF算法: 即暴风(Brute Force)算法,是普通的模式匹配算法,它的思想就是将子串的第一个字符与母串的第一个字符进行匹配,若相等,则继续比较子串的第二个字符和母串的第二个字符;若不相等,则比较母串的第二个字符和子串的第一个字符,依次比较下去,知道得出最后的匹配结果。算是一种蛮力算法。 代码:int BF(Str *s,Str *sub,int pos){ assert...

2018-07-26 10:51:21 304

原创 数字三角形(C语言)

一、问题描述 给定一个由行数字组成的数字三角形。试着设计一个算法,计算出从三角形的顶到底的一条路径,使得该路径经过的数字总和最大,并分析算法的计算复杂性。如下图所示: 7 3 8 8 1 0    2 7 4 4    4 5 2 6 5二、问题分析及算法描述(包含主要...

2018-07-10 19:16:51 12093

原创 C语言——八大排序

一、冒泡排序 /时间复杂度:O(n^2) //空间复杂度:O(1) //稳定性:稳定 主要思路如下: 1: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2:对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3:针对所有的元素重复以上的步骤,除了最后一个。 4: 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字...

2018-06-12 23:03:12 11505 5

原创 循环单链表

与单链表的区别是:最后一个结点的 next 域指向头结点处;#pragma oncetypedef struct CNode{ int data; struct CNode*next;}CNode,*CList;void InitCList(CList plist);bool Insert_head(CList plist,int val);bool Ins...

2018-05-14 23:14:04 239

原创 单链表

单链表:单链表是一种连式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)+指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每一个结点的地址数据。typedef struct Node{int data;struct Node *next;}Node,*List;void In...

2018-05-14 22:43:16 138

原创 动态顺序表

动态是在用的时候在开辟, 一个节省了时间而有可能会造成内存浪费或者内存不足,动态与齐相反,是有可能花费时间来减少空间的浪费,也不存在内存分配不足问题。头文件:#pragma once#define INIT_SIZE 10typedef struct DSqList这里写代码片{ int *elem;//存储数据的内存 int usedsize;//有效单元数 ...

2018-05-12 15:32:22 144

原创 静态顺序表

顺序表:在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。#pragma once  //防止头文件多次被引用#denfine SIZE 10typedef struct SeqList{int elem[SIZE];int usedsize...

2018-05-11 22:20:03 194

原创 动态开辟二维数组

malloc的用法:1、malloc()到底从哪里得到了内存空间?是从堆里面获得空间。也就是说函数返回的指针是指向堆里面的一块内存。操作系统中有一个记录空闲内存地址的链表。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。就是这样!2、什么是堆:堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有...

2017-11-18 17:44:42 280

翻译 内存泄漏

日常项目中碰到的内存泄露无非有以下几种:  (1) 堆内存泄漏(Heap leak)。堆内存指的是程序运行中根据需要分配通过malloc,realloc new等从堆中分配的一块内存,再是完成后必须通过调用对应的 free或者delete 删掉。如果程序的设计的错误导致这部分内存没有被释放,那么此后这块内存将不会被使用,就会产生Heap Leak. 这是最常见的内存泄露。

2017-11-18 17:35:26 199

翻译 指针与引用的区别

      1.  引用访问一个变量是直接访问,而指针是间接访问。   2.引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值.  例如  int i = 3,j = 4;  int &x = i;//成为i的别名  x = j;//不能否认x仍然引用i,并没有成为j的别名,只是修改了x和j...

2017-10-25 19:48:42 261

翻译 数组与指针的区别与联系

数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。     指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。意思是通过它能找到以它为地址的

2017-10-21 14:31:10 662

原创 作业10-16

1.求1到20的阶乘之和;#include  int main()    {      int i,s=0,p=1;      for(i=1;i        {p*=i;            s+=p;          }    printf("sum=%d\n",s);  return 0;  }结果为:sum=2680407292

2017-10-16 19:41:57 224

翻译 c语言中的#undef

#undef 是在后面取消以前定义的宏定义  该指令的形式为   #undef 标识符  其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。  一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结束或者使用#undef 指令取消定义。 例:#include   #include    #define Ma

2017-10-15 14:57:05 707

翻译 声明与定义

1.什么是定义:所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们常说的变量名或对象名,但注意,这个名字一旦和这块内存匹配起来,他们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量或对象在一定区域内(比如函数内,全局)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。2.什么是声明:有两重含义,如下:第一重含

2017-10-15 14:11:57 372

翻译 作业10-14

一、输入一个字符,判断它是否为大写字母,如果是,将它转化为小写字母,如果不是,不转化。然后输出最后得到的字符。     #include int main(){char ch;scanf("%c",&ch);ch=(ch>='A'&&chprintf("%c\n",ch);return 0;}二、九九乘法表#include int main(

2017-10-14 14:01:25 186

翻译 跳出关键词break、goto、return和continue

(1)break语言break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从能够满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。当break语句用于do-while、for、while循环语句中时,可是程序终止循环。而执

2017-10-14 13:13:23 708

翻译 作业2

9.     #include #include int  main(){      int n,a,b,c,d,e,x;      printf("");      scanf("%d",&n);       if(n>9999) x=5; else if(n>999) x=4; else if(n>99) x=3; else if

2017-10-11 21:42:51 300

翻译 作业

1.一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也

2017-10-09 22:58:01 153

转载 区别#define、enum和const

     1.#define 宏常量实在预编译阶段进行简单的替换,枚举常量是在编译器确定其值;     2.一般在编译器里面,可以调试枚举常量,但是不可以调试常量;     3.枚举可以一次性定义大量的相关的常量,而宏一次只定义一个;     4.枚举常量具有类型,但是宏没有类型,枚举常量具有与普通变量相同的诸如作用域、值等性质,但宏没有。     5.宏定义不是说明或语句,在行末...

2017-09-27 20:11:21 505

转载 printf的用法及特点

printf函数称为格式输出函数,其关键字最末一个字母f即为“格式(format)”之意。其功能是按照用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已经多次使用过这个函数。一般形式:   printf函数是一个标准库函数,它是函数原型在头文件“stdio。h”。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。printf函数调用的一般形式为:

2017-09-27 19:02:19 948

转载 大小端存放

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致,地址的增长顺序与值的增长顺序相反。          小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地

2017-09-22 22:06:58 1699

转载 汇编语言

寄存器:寄存器是中央处理器内的组成部分,是有限存储容量的高速存储部件,可以用来暂存指令、数据和地址。        通用寄存器是寄存器中的一种,顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们得知通常不会对计算机的运行造成很大影响,其最多的用途是计算,         EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针。

2017-09-20 20:56:16 396

空空如也

空空如也

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

TA关注的人

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