自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

zm小菜鸟

  • 博客(216)
  • 资源 (4)
  • 收藏
  • 关注

原创 Win10 安装oracle客户端和Navicat Premium出现的问题及解决方法

安装oracle 客户端点击setup.exe之后,出现了:[INS-13001]环境不满足最低要求 解决方法: 打开你的解压后的database文件夹,找到stage,然后cvu,找到cvu_prereq.xml文件,用记事本打开,增添一下内容<OPERATING_SYSTEM RELEASE="6.2"> <VERSION VALUE="...

2018-03-23 13:42:44 1643

转载 HTTPS 单向认证

HTTP Hyper Text Transfer Protocol超文本传输协议 明文 传输的数据不加密HTTPS Hyper Text Transfer Protocol over Secure Socket Layer 安全的超文本传输协议SSL secure socket layer安全套接层协议对称加密 公钥加密 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一...

2018-03-14 10:22:39 1299

转载 少奋斗十年的建议

第一:不要认为停留在心灵的舒适区域内是可以原谅的。      每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。然而相反,在工作之后,你要极力改变...

2018-03-09 13:44:49 813

原创 进程详述

进程是什么 在书上看到过说,进程是计算机正在被执行的程序实例。 其实,进城本身是不存在的,当一个进程开始执行后,琮凯性执行到执行完毕退出的这段时间内,内存中的内容就是进程。为什么需要进程 因为技术发展,我们不断在追求高效,多进程技术可以让我们实现多任务并发技术(这也是嵌入式 安装操作系统的好处 其他好处还有丰富的网络 堆栈 库资源 降低耦合) 并发 :利用分时技术,在linux操作系统上可

2017-09-18 13:39:55 565

转载 STL各种容器的特征

STL各种容器的特征 1.vector 内部数据结构:数组 随机访问每个元素 在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素随元素数目呈线性变化。 vector的迭代器在内存重新分配时将失效(它所指向的元素在操作前后不一样)vector迭代器的失效情况: (1)当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。 (2)当插入(push_bac

2017-09-07 09:56:16 780

转载 【笔试题】深拷贝与浅拷贝(二)

刚看到一道同类型的,一起搬上来了。。。#include <iostream> class A { int i; }; class B { A *p; public: B() { p = new A; } ~B() { delete p; } }; void sayHello(B b) { } int main() {

2017-09-06 17:13:55 574

原创 【笔试题】深拷贝与浅拷贝(一)

今天做了道笔试题,是一道改错题,错误隐藏的还蛮深,但要是想到深拷贝和浅拷贝,就容易多了。 题目: #include <vector> #include <iostream> using namespace std; class CDemo { public: CDemo() : str(NULL) {};

2017-09-06 16:43:28 590

原创 模板类的友元重载

c++代码实现模板类的友元重载#include <iostream>using namespace std;template <class T>class Test;template <class T>ostream& operator<<(ostream& out, const Test<T> &obj);template <class T>class Test{ private

2017-09-06 10:19:09 346

原创 如何编写一个Linux字符设备驱动?

感觉学好驱动的基础,起码要了解驱动编写过程。。。所以就小小的整理了一下。字符设备驱动的编写编写字符设备驱动主要完成以下动作: 1. 定义一个结构体static struct file_operations变量,其内定义一些设备的open read write close等控制函数 2. 在结构体外分别实现结构体中定义的这些函数 3. 向结构体中注册或删除驱动模块注册字符设备: 1.

2017-08-16 16:46:55 1084

原创 局部指针变量为什么可以正确返回?

作为一个菜鸟级别的程序员,我也知道一句话叫做:不能返回局部指针变量最近有一个问题困扰了我很久,到底能不能返回局部变量。。局部指针变量。。。先看下面的代码#include <stdio.h>#include <stdlib.h>#include <string.h>char *func(){ char *p = (char *)malloc(100); strcpy(p, "he

2017-08-14 15:07:07 1166

转载 想让程序跳转到绝对地址0x100000处执行,该如何做?

嵌入式笔试题:想让程序跳转到绝对地址0x100000处执行,该如何做?网上看到有如下答案:((void()(void))0x100000)();经过在VC++6.0和Linux gcc4.4.3下测试,均不能通过编译。VC++6.0报错:error C2100: illegal indirectionGCC报错:error: void value not ignored as it ought to

2017-08-10 11:36:15 2980

转载 GetMemory 改错

GetMemory 改错 试题4:void GetMemory( char *p ) {  p = (char *) malloc( 100 ); }void Test( void ) {  char *str = NULL;  GetMemory( str );  strcpy( str, “hello world” );  printf( str ); }   试题5:

2017-08-10 11:29:22 470

原创 生产者和消费者问题

这是一道学习linux时候的历史遗留问题。。。题目:用线程实现:生产者与消费者: 一个缓冲区,两个线程:生产者和消费者,一个放入缓存一个从缓存取数据,生产者在满时等待,消费者在空时等待,两者互斥执行。实现:用一个有名管道myfifo作为缓存,因为两者互斥执行,所以myfifo属于临界资源。 而对临界资源的互斥与同步要用信号量来解决。 使用3个信号量,一个二值信号量(mutex )控制是否允许对

2017-08-09 20:55:21 450

原创 判断二叉树是否为二叉搜索树

判断一个二叉树是否为二叉搜索树刚开始我想的很简单,觉得只要递归判断左孩子是否小于根节点 右孩子是否大于根节点就行了 //二叉搜索树 = 左孩子 < 根结点 && 右孩子 > 根节点 //下面的写法 错的!!!!错的!!! //二叉树的判断应该是左子树的最大值 小于 根节点 右子树的最小值大于根节点 bool isValidBST(TreeNode *

2017-08-09 12:43:26 620

原创 根据前序 中序 后序 构建二叉树

//Construct Binary Tree from Inorder and Postorder #include <iostream>#include <vector>using namespace std;struct TreeNode{ int val; TreeNode *left, *right; TreeNode(int data): val(data),

2017-08-08 09:47:28 441

原创 二叉树的最大深度和最小深度实现

二叉树的最大深度给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的距离。 如果二叉树为空,则深度为0 如果不为空,分别求左子树的深度和右子树的深度,取最大的再加1.二叉树的最小深度给定一个二叉树,找出其最小深度。 二叉树的最小深度为根节点到最近叶子节点的距离。 判断左子树或右子树是否为空,若左子树为空,则返回右子树的深度,反之返回左子树的深度,如果都不为空,则返回

2017-08-04 12:11:07 608

原创 排序大综合

排序大综合//排序 大综合 测试 我记住了没!!#include <iostream>#include <stdlib.h>#include <string.h>using namespace std;void BubbleSort(int a[], int n){ if(NULL == a || n == 0) { return ; } fo

2017-08-01 10:27:39 364

原创 字符串长度乘积最大值 位操作

// "abcw" "baz" "foo" "bar" "xtfn" "abcdef"//return 16//"abcw" "xtfn"//对于单词字符串的字符出现情况我们可以使用一个哈希表来记录,由于范围限定在‘a’~'z',//我们可以直接使用26位的数组,由于只需标记字符是否出现(状态只有0和1),//因此我们只需要用一个位来表示该字符是否存在,因此我们只需要一个32位的整型变量,

2017-07-27 17:11:11 671

原创 图的实现 邻接矩阵+无向图

#include <iostream>#include <string.h>#include <vector>#include <stdlib.h>using namespace std;class Node{public: Node(char data = 0);//构造函数 初始化 char m_Data; //值 bool m_blsVisited; /

2017-07-27 15:16:06 514

原创 平衡二叉树的实现

//平衡二叉树 #include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;typedef int ElementType; typedef struct BinaryNode{ ElementType data; int height; unsigned int freq;

2017-07-23 21:04:24 410

原创 位运算实现加减乘除四则运算

//只用逻辑运算实现加法int add(int a, int b){ if(0 == b) { return a; } int sumTemp = a ^ b; int carry = (a & b) << 1; return add{sumTemp, carry};} //只用逻辑运算实现减法int minus(int a, int b){ b = add(~b,

2017-07-18 20:43:11 611

转载 未定义行为

下列 C 代码中,不属于未定义行为的有___正确答案: C  int i=0;i=(i++);char *p=”hello”;p[1]=’E’;char *p=”hello”;char ch=*p++;int i=0;printf(“%d%d\n”,i++,i--);都是未定义行为都不是未定义行为

2017-07-14 09:36:04 289

原创 C++函数返回引用

引用:给变量取别名引用作为函数返回值的优点是,在内存中不产生被返回值的副本,从而大大提高程序的安全性与运行效率注意事项:l  不可以返回局部变量的引用。局部变量存储在栈空间,函数返回后会被销毁,因此返回的引用会变成无指向的引用,程序进入未知状态,引起程序错误甚至崩溃l  不可以返回函数内部new分配的内存的引用(不是非法,代码习惯不好)。函数返回的引用只是作为一 个临时变量出现,而

2017-07-13 20:55:18 523

原创 exit()和析构函数的关系

exit()和析构函数的关系exit( )函数的作用是删除所有的静态对象,刷新缓冲,关闭所有的I/O通道,然后结束程序如果对象是局部对象,exit()函数不会调用对象的析构函数,因为不存在栈空间回收问题。如果对象是全局变量,会调用对象的析构函数如果是动态建立的对象,除非手动删除,否则不会调用对象的析构函数 现在思考一下,如果在C++里调用了exit() , 内存中的对象

2017-07-13 17:11:06 4151

原创 怎样在main()函数退出之后再执行一段代码?

怎样在main()函数退出之后再执行一段代码?1.      全局对象在main()函数执行后,程序退出,这时候会对全局变量和全局对象进行销毁操作,所以还会执行析构函数的代码。2.      atexit 函数使用atexit函数,注册一个或多个函数,它们被注册在栈中, 在 main 函数结束后被调用,调用顺序与注册顺序相反。摘自http://www.cnblogs.com/w

2017-07-13 16:47:48 2204

原创 c++ vector 反转打印链表

题目描述输入一个链表,从尾到头打印链表每个节点的值。要求接口为:  vector printListFromTailToHead(ListNode* head);解析:遍历链表,但遍历的顺序是从头到尾,可输出是从尾到头,明显是要进行转换方法一:利用vector的reverse函数/** struct ListNode {* int

2017-06-17 14:14:57 1126

原创 C++ 强制类型转换符

C++有四种强制类型转换符,分别是dynamic_cast , static_cast,reinterpret_cast, const_cast1.     dynamic_cast该运算符用于将一个指向派生类的基类指针或引用转换为派生类的指针或引用表达式: dynamic_cast目标类型>(表达式) 举例:B*b; //含有虚函数的基类BD*d, pd; //从B类

2017-06-10 11:47:52 422

原创 32位int 最小负整数

以下代码的执行结果是().1234int main(){   int i=-2147483648;   return printf("%d,%d,%d,%d",~i,-i,1-i,-1-i);}正确答案: D   你的答案: C (错误)A.  0,2147483648,2147483649,2147483647B

2017-06-09 09:33:50 9224

原创 函数执行顺序 打印顺序

下列程序的运行结果是( ) #include main(){    struct t   {       int x; int *y;   }*p;   int a[]={1,2};   int b[]={3,4};   struct t c[2]={5,a,6,b};   p=c;   printf("%d,%d",*(p->y),

2017-06-06 08:48:18 617

原创 单链表逆序 多种方法总结

经常会碰到一道关于链表的题目——链表逆序,今天就来进行一下总结  一. 使用额外内存空间实现  和数组逆序一样,链表的逆序也可以使用额外的结点空间做中转,但这也分有两种思路。 假设链表为A->B->C->D->E 1.先取出链表的最后一个E,然后将E作为新链表的头, 再依次取出原来链表的最后一个节点,插入到新链表的最后位置。  思

2017-06-06 00:16:22 688

原创 类对象只能在堆上分配空间的方法

在C++中,为了让某个类只能通过new来创建(即如果直接创建对象,编译器将报错),应该()正确答案: B  将构造函数设为私有将析构函数设为私有将构造函数和析构函数均设为私有没有办法能做到解析:参考:http://blog.csdn.net/hxz_qlh/article/details/13135433

2017-06-04 09:01:31 614

原创 继承 多态 组合

1. 关于函数模板,描述错误的是? 正确答案: A   你的答案: C (错误)A.  函数模板必须由程序员实例化为可执行的函数模板B.  函数模板的实例化由编译器实现C.  一个类定义中,只要有一个函数模板,则这个类是类模板D.  类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化解析:函数模板必须由编译器根据程序员的调用类型实例化为可执行的函数。

2017-06-03 09:04:51 669

原创 扩展 sizeof和strlen malloc

1.32位机上根据下面的代码,问哪些说法是正确的?signed char a = 0xe0;unsigned int b = a;unsigned char c = a;正确答案: C  A.  a>0 && c>0为真B.  a == c为真C.  b的十六进制表示是:0xffffffe0D.  上面都不对 解析:1.  扩展问题符号位

2017-06-01 17:55:58 609

原创 软考 DFA的状态转换图+正规式

1.[解析] 至少要有一个.或E,所以在BCD中。然后不含+,所以在CD中。然后观察5出去的两条边(对应于.后的字符),如果是数字的话,就不能出现E了,所以选C。具体来说0是入口,6是出口,初始进入0状态,必需最终到达6状态A 3857,状态过程:0->1->1->1->1B 1.2E+5,E+5状态过程:0->1->5->2->? C -123

2017-05-19 20:55:26 13373

原创 设计模式 状态模式 策略模式 观察者模式 命令模式 中介者模式

设计模式(对象行为型)一.状态模式环境类(Context):  定义客户感兴趣的接口。维护一个ConcreteState子类的实例,这个实例定义当前状态。抽象状态类(State):  定义一个接口以封装与Context的一个特定状态相关的行为。具体状态类(ConcreteState):  每一子类实现一个与Context的一个状态相关的行为。作用:允许对象在内部状态变化

2017-05-18 10:38:10 2272

原创 interface与abstract class区别

interface接口与abstract class抽象类的区别java中interface接口与abstract class抽象类的区别 interface和abstract class是Java中实现多态的基础,都很有用,但也有一些区别: interface被继承时用的关键字是implements,而且可以同时implements多个interface,而abstract cl

2017-05-18 10:21:04 324

原创 ARM Volatile关键字 NPN和PNP区别

Volatile关键字作用:volatile修饰的变量,表示易变的,防止编译器优化。当需要读取或存储这个变量的时候,要直接从变量的地址读取或存储 应用:多线程中断 全局变量  NPN和PNP区别1.如果输入一个高电平,而输出需要一个低电平时,首选择npn。 2.如果输入一个低电平,而输出需要一个低电平时,首选择pnp。 3.如果输入一个低电平,而输出需要一个高电

2017-05-12 13:07:33 480

原创 ARM 按键控制LED灯+IO控制buzzer蜂鸣器

按键控制LED灯GPIO_MemMapPtr const PORT_BASE_PTR[] = {GPIOA_BASE_PTR,GPIOB_BASE_PTR};void GPIO_WriteBit(GPIO_TypeDef port,int pin,BIT_TypeDef bit){ if(bit == BIT_RESET) { PORT_BASE_PTR[port]

2017-05-12 13:06:27 3140 1

原创 【数据库】范式

假设员工关系EMP(员工号,姓名,部门,部门电话,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于 (52) ,且 (53) 问题;为了解决这一问题,应该将员工关系EMP分解为 (54) 。(52)A. 1NFB. 2NFC. 3NFD. BCNF(53)

2017-04-25 14:40:13 1105

原创 基于ARM 的led循环点亮C程序

基于ARM 的led循环点亮C程序#include "S3C2451.h"#define LED1_CON (1 << 5)#define LED2_CON (1 << 5)#define LED3_CON (1 << 25)#define LED4_CON (1 << 26)/* Active is low.(LED On) 26

2017-04-23 22:49:17 1783

C语言详解.mmap

C语言 要点汇总

2017-06-06

QT详解与实例

QT详解与实例

2017-04-25

ARM初识.mmap

ARM基础 S3C2451控制器简要介绍 启动代码分析

2017-04-23

C语言概述 思维导图

用思维导图清晰整理C语言概述 十分实用!!!

2017-04-10

空空如也

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

TA关注的人

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