2013年4月26日
摘要: memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);它们都是从src所指向的内存中复制count个字节到dst所指内存中,并返回dst的值。当源内存区域和目标内存区域无交叉时,两者的结果是一样的,但如果有交叉呢?先看下图:图的上半部分为源内存区域在目标内存区域右边,下半部分为源内存区域在目标区域左边,源内存区域和目标内存区域都 阅读全文
posted @ 2013-04-26 20:52 猿人谷 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 来源:http://www.cnblogs.com/qlee/archive/2011/09/16/2178873.html1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。View Code 1 using System; 2 using System.Linq; 3 using System.Collections.Generic; 4 namespace ConsoleApplication1 5 { 6 class Program 7 { 8 static Random Rand =new Random(); ... 阅读全文
posted @ 2013-04-26 20:21 猿人谷 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)2、 堆(给动态分配内存是使用),向上生长 (可读可写可执行)3、 数据段(保存全局数据和静态数据) (可读可写不可执行)4、地位地址:代码段(保存代码) (可读可执行不可写)代码段就是存储程序文本的,所以有时候也叫做文本段,指令指针中的指令就是从这里取得。这个段一般是可以被共享的,比如你在Linux开了2个Vi来编辑文本,那么一般来说这两个Vi是共享一个代码段的,但是数据段不同(这点有点类似C++中类的不同对象共享相同成员函数)。 数据段是存储数据用的,还可以分成初始化为非零的数据区,BSS,和堆(Heap)三个 阅读全文
posted @ 2013-04-26 20:16 猿人谷 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆 阅读全文
posted @ 2013-04-26 20:07 猿人谷 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 基本概念: 1.OOP中唯一关心的是对象的接口是什么,就像计算机的销售商她不管电源内部结构 是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why。所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大 限度上提高复用率。2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。 3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance fie 阅读全文
posted @ 2013-04-26 17:24 猿人谷 阅读(206) 评论(0) 推荐(0) 编辑