自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用树莓派时遇到的些许问题

好久没上博客了,最近由于使用树莓派,就在网上买了一块树莓派3b的板子来折腾,在这个过程中,遇到了一些问题,这些问题既浪费时间又不是啥技术问题,很是浪费时间,所以我在这里贴出我遇到的这几个问题,希望能给有需要的朋友提供些许便利。1、打开putty出现的问题raspbery pi 连接putty出现:connect refused or connect time out.首先打开sudo raspi-...

2018-06-11 16:43:52 3225

原创 将两个各自有序的链表,合成一个有序的链表

方法一:Node *Merge(Node *head1, Node *head2){ if(head1 == NULL) { return head2; } if(head2 == NULL) { return head1; } Node *head = NULL; Node *p1 = NULL

2017-09-06 19:59:10 1054

原创 C++学习---(三)面向对象的优缺点

什么是面向对象编程:面向将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法来管理数据,也就是说只有对象内部的代码能够操作对象内部的数据。 面向对象的三大优点:复用性、维护性、拓展性 面向对象的三大特点:(实际上是四大特点)1:封装(维护性):如大话设计模式中的一个故事:活字印刷。应对不同客户的需求,只需改动特定的维护,不需重新设计,此为可维护2:继承(复

2017-02-23 21:45:34 3674

原创 C++学习---(二)

内联函数inline的使用  Inline int max(int  a,  int  b)  {      Return  a > b?  a :b;  }  #define  MAX(a, b)  (a) > (b) ? (a) : (b) 内联函数与带参数宏的区别?内联函数调用时,要求实参和形参的类型一致,另外内联函数会先对实参表达式进行求值,然后传递给形

2017-02-22 14:08:16 666

原创 C++学习---(一)

嵌入式开发中为什么要学习C++语言?  1.强化C语言编程能力,提高编程的代码质量。  2.帮助学习其他编程语言,建立从面向结构到面向对象的过程。 面向过程编程的特点?  主要解决科学计算问题,用户需求简单而且固定。 特点:   分析解决问题所需要的步骤   利用函数实现各个步骤   依次调用函数解决问题 问题:   软件可重用性差   软件可维护性

2017-02-07 11:00:15 461

原创 一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有 6 对(),它们可以组成的合法表达式的个数为_132___

解释:这是一个卡特兰数列我们可以把左括号看做1,右括号看做0,这些括号的组合就是01的排列这里需要满足从第一个数开始的任意连续子序列中,0的个数不多于1的个数,也就是右括号的个数不多于左括号的个数。假设我们不考虑这个限制条件,那么全部的01排列共有C(2n,n)种,也就是一半0一半1的情况现在我们想办法把其中不符合要求的数量去掉在任何不符合条件的序列中,找出使得0的个数超过

2017-01-15 22:24:10 3528

转载 c++11 函数内部返回对象使用move语义的最佳实践

一句话,直接返回即可,一般不用任何特殊写法。当启动了c++11选项后,通过函数返回代码没有发生任何变化,但是已经使用了move语义,而不一定使用之前介绍的NRVO编译器优化技术。注意,右值引用rvalue reference是表达式计算完成后就不再存在的临时变量,左值是表达式计算完成后的变量。如果能够用&求址的,就是左值。下面是stackoverflow上的一个讨论贴,比较有价值:

2017-01-14 23:36:49 495

原创 有向图的十字链表存储表式

#define MAX_VERTEX_NUM 20typedef struct ArcBox{ int tailvex, headvex; //该弧的尾和头顶点的位置 struct ArcBox *hlink, *tlink; InfoType *info;}ArcBox;typedef struct VexNode{ Ver

2017-01-13 22:22:24 418

转载 C++时间

概念UTC和GMTCoordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。CalendarCalendar Time:日历时间,是用“从一个标准时间点到此时

2017-01-12 23:52:55 462

原创 C/S和B/S的区别

1.什么是C/S结构C/S (Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构可以看做是胖客户端架构。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部分需要承受很大的压力,从分利用客户端的资源,对客户机的要求较高。其实现可以

2017-01-11 23:06:42 752

原创 进程的三个基本状态,以及三个状态之间切换的条件

一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。 (1) 就绪->执行就绪状态是指进程获得了调度程序为之分配的除了CPU时间之外的其他必要资源,只要CPU时间一到位就可执行了。处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。 (2) 执行->就绪处于执行状态的进程在其执行过程

2017-01-10 21:20:32 19688 1

原创 register 关键字的作用

1.register修饰暗示编译程序相应的变量将被频繁使用的变量尽可能的将这个变量保存在CPU内部寄存器中而不是通过内存寻址来访问,是为了提升它的运行速率。2、但是使用register修饰符有几点限制(1)register变量必须是能被CPU所接受的类型。这通常意味着register变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。不过,有些机器的寄存器也能存

2017-01-09 22:10:17 3544 1

转载 对C++的认识

我又孤陋寡闻了一次!我和CSDN的博友在讨论C++不如Java的原因时搬出了很多年前stroustrup说的观点,和Java相比,C++的framework急需发展。这几年关注的开源项目主要集中在Java世界,C++方面仍然仅仅局限在几个经典项目上,比如ACE,Loki,Boost。今天偶然在stackoverflow上查阅了一下,居然得到了不小的惊喜:1.staff Restful web se

2017-01-08 22:38:23 588

原创 进程的组成部分

在Linux系统中进程由以下三部分组成:①进程控制块PCB;②数据段;③正文段。        Linux系统为了节省进程控制块所占的内存空间,把每个进程控制块分成两部分。一部分常驻内存,不管进程是否正占有处理器运行,系统经常会对这部分内容进行查询和处理,常驻部分内容包括:进程状态、优先数、过程特征、数据段始址、等待原因和队列指针等,这是进行处理器调度时必须使用的一些主

2017-01-07 23:11:00 10786

原创 new和malloc的区别

new 和malloc的区别1,malloc与free是C++/ C语言 的标准库函数,new/delete是C++的运算符。它们都可用于申请动态和释放内存。2. new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数,malloc仅仅分配内存,free仅仅回收内存3、new可以认为是malloc加构造函数的执行。new出来的指针是直接带类

2017-01-06 22:52:05 359

原创 怎样选择TCP还是选择UDP

TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还

2017-01-05 22:46:18 5607

原创 端口号、IP、网关的作用

ip(网络之间互连的协议):网络之间互连的协议(IP)是Internet Protocol的外语缩写, 中文缩写为“网协”.网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性

2017-01-04 21:50:16 4713

原创 多线程和多进程之间的区别

1)需要频繁创建销毁的优先用线程这种原则最常见的应用就是Web服务器了,来一个连接建立一个线程,断了就销毁线程,要是用进程,创建和销毁的代价是很难承受的2)需要进行大量计算的优先使用线程所谓大量计算,当然就是要耗费很多CPU,切换频繁了,这种情况下线程是最合适的。这种原则最常见的是图像处理、算法处理。3)强相关的处理用线程,弱相关的处理用进程什么叫强

2017-01-03 20:52:49 540

原创 多进程编程的优缺点

多进程优点:每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系; 通过增加CPU,就可以容易扩充性能; 可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系; 每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大多线程缺点:逻辑控制复杂,需要和主程序交互; 需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密

2017-01-02 21:59:08 4138

转载 虚函数

虚函数的内存布局一个拥有虚函数的类内部会有一个成员变量vptr,一个四字节大小的指针,指向虚函数表,虚函数表中记录了该类的各个虚函数的入口地址,如果该类重载了继承的虚函数,那么就存放自己的虚函数地址,否则就是父类的虚函数地址。class A{public:     virtualvoid f(){};     virtual ~A(){};}; class

2017-01-01 22:24:36 399

原创 32位和64位操作系统的区别

首先很明显的一点上面也说了,最大支持的内存大小不同,地址总线设计不同等,下面简单概括为以下几点: 第一,设计初衷不同。64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。    第二,要求配置不

2016-12-31 12:09:56 492

转载 C++ string详解

http://www.cnblogs.com/xy-kidult/p/3903734.htmlC++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触 perl

2016-12-30 23:13:11 621

原创 判断大端字节序和小端字节序

判断大端字节序和小端字节序

2016-12-29 22:27:37 531

原创 数据库与文件进行数据存储时的区别

数据库与文件进行数据存储时的区别

2016-12-28 23:09:57 1642

原创 Linux系统启动过程

Linux系统启动过程

2016-12-27 21:52:43 272

原创 字符串移位

将字符串循环右移n位,如abcdefg右移两位变成fgabcde

2016-12-26 22:48:40 301

原创 用递归判断一个数组是否是递增数组

用递归判断一个数组是否是递增数组

2016-12-24 23:29:24 639

原创 TCP三次握手

TCP三次握手过程

2016-12-23 23:32:01 277

原创 系统调用与库函数的区别?

系统调用与库函数的区别

2016-12-22 22:35:44 578

原创 C++整数类型

C++中提供的整数类型有三种:int、long、short,每种类型又分为有符号和无符号两种类型。有符号整数既可以表示非负整数,又可以表示负整数;但是,无符号整数不能表示负数,只能表示非负整数。(一)无符号整数    在内存中,int整数通常占4字节,这里,我们假定int为32位,那么无符号整数表示的取值范围为0x00000000~0xFFFFFFFF,转换为十进制为0~429496729

2016-12-21 20:31:08 9732

转载 随机生成1024个数,用指针进行排序,并实现二分查找

随机生成1024个数,用指针进行排序,并实现二分查找

2016-12-20 21:39:21 688

原创 去除字符串中重复出现的字符

去除字符串中重复出现的字符

2016-12-19 22:42:23 1070

原创 斐波拉契数列

一只青蛙一次可以跳上1—n级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法?

2016-12-18 22:19:41 370

转载 函数的可变参数

一般而言,在设计函数时会遇到许多数学和逻辑操作,是需要一些可变功能。例如,计算数字串的总和、字符串的联接或其它操作过程。实现一个函数,要求在函数中计算传入的所有参数之和,并输出到屏幕上。这个函数实现起来并不困难,问题在于这个函数的参数个数是不确定的:假设这个函数的名字是sum_n,那么程序员既可以调用sum_n(1, 2)来计算两个数的和,又可以调用sum_n(2, 3, 4)来计算三个数的和

2016-12-17 23:22:43 435

转载 信号的生命周期

信号生命周期为从信号发送到信号处理函数的执行完毕。对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶段。下面阐述四个事件的实际意义:1、信号"诞生"。信号的诞生指的是触发信号的事件发生(如

2016-12-16 22:04:43 1110

原创 自己实现将整型转化为字符型

不调用API函数,自己实现将整型转化为字符型

2016-12-15 17:42:35 2041

原创 实现字符串中寻找字串

寻找字符串中的子串

2016-12-14 22:43:51 492

原创 TCP三次握手过程

一、TCP报文格式  TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+

2016-12-13 19:34:30 282

原创 合并两个链表成一个升序链表

两个链表合并成一个升序链表

2016-12-12 22:01:49 2297

原创 c语言中用户输入的密码用*号代替,可回删

#include#include#includevoid main(){ //char name代表用户名 mm代表登陆密码 a代表输入的密码 char name[20], mm[3]={'y','a','n'},a[6]; int i,g; printf("\n\n\n\t\t\tStudent Manager"); for(i=0;i<3;i+

2016-12-11 22:10:29 14191 2

空空如也

空空如也

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

TA关注的人

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