自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清闲居

stay hungry. stay foolish.

  • 博客(10)
  • 资源 (3)
  • 收藏
  • 关注

转载 判断单链表是否存在环,判断两单链表是否相交

<br />【摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。<br />有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。<br />问题:<br />1、如何判断一个链表是不是这类链表?<br />2、如果链表为存在环,如果找到环的入口点

2011-03-29 09:54:00 582

原创 复习10:类-续

10.4.4 局部变量      一组对象按照与构造顺序的逆序调用它们的析构函数。10.4.4.1 对象的复制      如果t1和t2都是Table对象,t2=t1的默认含义就是把t1按成员逐个复制给t2.这种复制方式应用到具有指针成员的对象时,可能会产生意料之外的作用。具体的例子就省略了。使用编译器生成的默认的拷贝构造函数与此一样。为了避免这种麻烦,需要显式定义拷贝构造函数和重载=运算符。10.4.5 自由存储      对new产生的对象多次使用delete释放他,结果是未定义的。10.4.6类对象作

2011-03-21 02:08:00 442

原创 复习10:类

10.1 引言10.2 类10.2.1 成员函数10.2.2 访问控制10.2.3 构造函数        构造函数可以有多种重载形式,如:class Date{ int d,m,y;public: //.. Date(int,int ,int); Date(int,int); Date(int); Date(); Date(const char*);};Date today = Date(23,6,1983);Date xmas(23,6,1983); //简写

2011-03-18 12:38:00 562

原创 复习9:源文件和程序

<br />写这篇文章之前要介绍命名空间和异常的。因为现在不常用它们,暂且略去。<br />9.1 分别编译<br />      源文件提交给编译器后,首先进行预处理,即完成宏处理和按照#include指令引进头文件。预处理之后的源文件成为编译单位--编译器真正的工作对象。连接器将分别编译的部分约束在一起。<br /> <br />9.2 连接<br />      如果一个名字可以在定义它的编译单位之外的其他编译单位使用,称其具有外部连接性。否则称其具有内部连接性。<br />        const

2011-03-15 02:15:00 733

转载 typedef常见用法

<br /><br />1.常规变量类型定义<br />例如:typedef unsigned char uchar<br />描述:uchar等价于unsigned char类型定义<br />      uchar c声明等于unsigned char c声明<br />2.数组类型定义<br />例如: typedef int array[2];<br />描述: array等价于 int [2]定义;<br />      array a声明等价于int a[2]声明<br />扩展: typede

2011-03-12 00:55:00 21258 5

转载 C函数调用过程分析

一.环境:    x86/WinXP/VC 6.0二.用例:int swap(int a, int b){ int v; v = a; a = b; b = v; return v;}void main(void){ int a = 7; int b = 10; int c = 0; c = swap(a,b); return;}三.分析:1:    int swap(int a, int b)2:    {00401020   push        ebp00401021   mov         e

2011-03-05 11:32:00 755

原创 复习8:函数

1.内联函数   内联函数提示编译器把函数调用在线化,递归内联函数能在线化调用的层次由编译器的“聪明度”决定。2.参数传递   2.1参数传递的求值顺序是未定义的。如f(i,i++)的参数值是未定义的,结果也是不可知的。   2.2参数传递一般为值传递,保证了实参的值不会修改,但存在效率问题。于是我们使用指针和引用做参数,但使用它们可能会修改实参。为了给调用者足够的保证,我们使用const修饰它们表示不会改变实参的值,不使用则说明我们需要修改实参值。这样的风格对程序设计是大有裨益的。   2.3指针、常量指

2011-03-05 11:22:00 577

原创 复习7:表达式与运算符

1.求值顺序.  在一个表达式里,子表达式的求值顺序是没有定义的.v[i] = i++;的结果是无定义的.  算符,(逗号),&&(与),||(或)保证了位于它们左边的运算对象一定会在右边的运算对象之前求值.例如,b=(a=2,a+1)将把3赋给b.  考虑f1(v[i],i++)与f2((v[i],i++)).前一个有两个参数,且参数的求值顺序是没有定义的.后一个有一个参数,即逗号表达式的值,它等价于i++.2.堆存储算符new和delete.  new算符把对象在堆上分配.使用delete能销毁它们,且

2011-03-04 01:05:00 556

原创 复习6:void指针和结构体

<br />1.void指针的安全操作有:<br />   1.把任何对象的指针值赋给空指针.<br />   2.两个空指针相互赋值,并可比较相等.<br />   3.可以显示地把空指针转换的另一类型.<br />除此之外其他所有操作都是不安全的.看下例:<br />void f(int* pi){ void* pv = pi; //ok *pv; //error,void* 不能间接引用 pv ++; //error,void不能增量(不知道被指对象的大小) int* p2 = s

2011-03-03 00:48:00 1800

原创 复习5:名字和引用

1.一个名字表示“内存中是什么东西”,这即是最简单最基本的“对象”的概念,对象就是“内存中一片连续的区域”,不要与类对象的高级概念相              混淆.2.引用就是对象的别名,在声明引用时必须对它初始化,此后它只能从一而终,不能再引用其他的对象了.    如果 int& r = i; 那么&r将返回i的地址.    引用的一种实现方式是把它作为一个常量指针,在每次使用它的时候都自动地做间接访问.在某些情况下,编译器可以通过优化去掉引用,使得在   执行时根本不存在任何表示引用的东西.    引

2011-03-03 00:31:00 538

嵌入式课程设计-交通灯的实现

我做的嵌入式课程设计,全套源码尽在其中。可以运行。

2011-07-09

阿里巴巴2011实习生招聘技术岗位笔试题

阿里巴巴2011实习生招聘技术岗位笔试题,网络资源

2011-07-09

程序员面试题精选100题

常见面试题,答案用c++写的。网络资源,仅供学习,禁止任何商业用途。

2011-07-09

空空如也

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

TA关注的人

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