上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Globa... 阅读全文
posted @ 2013-08-28 11:11 jiayouwyhit 阅读(534) 评论(0) 推荐(0)
摘要: 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS... 阅读全文
posted @ 2013-08-28 11:07 jiayouwyhit 阅读(186) 评论(0) 推荐(0)
摘要: 指针数组,故名思义,就是指针的数组,数组的元素是指针; 数组指针,同样,就是直想数组的指针。 简单举例说明: int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。 int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。 其实这两种写法主要是因为... 阅读全文
posted @ 2013-08-15 16:00 jiayouwyhit 阅读(326) 评论(0) 推荐(0)
摘要: 本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(...); ... 阅读全文
posted @ 2013-08-13 10:38 jiayouwyhit 阅读(675) 评论(0) 推荐(0)
摘要: 以下是本人根据上一篇博客随笔http://www.cnblogs.com/jiayouwyhit/p/3251832.html,所写的KMP算法代码(暂未优化),个人认为在基于上一篇博客的基础上,代码的思路是相对很清晰的。以后的KMP算法求解建议依照此版本进行代码构思。再次强调下本版本的next数组:例如:// T = a b c a b c a b c d//下标: 0 1 2 3 4 5 6 7 8 9//next: -1 0 0 0 1 2 3 4 5 6该版本的next数组的一个好处在于:字符串的下标是从零开始的,符合C++下string本身的特点;且另next[0]=-1,... 阅读全文
posted @ 2013-08-11 21:37 jiayouwyhit 阅读(380) 评论(0) 推荐(0)
摘要: 前言:纠结于KMP已经两天了,相较于本人之前博客中提到的几篇博文,本人感觉这篇文章更清楚地说明了KMP算法的来龙去脉。http://www.cnblogs.com/goagent/archive/2013/05/16/3068442.html1、传统的字符串匹配算法/* * 从s中第sIndex位置开始匹配p * 若匹配成功,返回s中模式串p的起始index * 若匹配失败,返回-1 */int index(const std::string &s, const std::string &p, const int sIndex = 0){ int i = sIndex, j = 阅读全文
posted @ 2013-08-11 20:00 jiayouwyhit 阅读(394) 评论(0) 推荐(0)
摘要: 前言:本人最近在看《大话数据结构》字符串模式匹配算法的内容,但是看得很迷糊,这本书中这块的内容感觉基本是严蔚敏《数据结构》的一个翻版,此书中给出的代码实现确实非常精炼,但是个人感觉不是很好理解。截止到目前为止,讲解KMP算法的文章,个人比较推荐有两篇:http://www.cnblogs.com/c-cloud/p/3224788.htmlhttp://www.matrix67.com/blog/archives/115这两篇文章的解释基本思路是一致的,前者提到的部分匹配值就是后者提到的P[]数组(均对应于《算法导论》中KMP算法的next数组的求解),但是不同于《大话数据结构》和严蔚敏教材里 阅读全文
posted @ 2013-08-10 17:19 jiayouwyhit 阅读(533) 评论(0) 推荐(0)
摘要: 最近看网上帖子时,看到一位网友提到的一个有意思的问题: int main() { float a; a=1.1; } 当我编译这样一段程序,VC会提示:warning C4305: '=' : truncation from 'const double ' to 'float '。 ... 阅读全文
posted @ 2013-08-09 16:07 jiayouwyhit 阅读(621) 评论(0) 推荐(0)
摘要: 1. 先上代码: void swap1(int &a, int &b){ a ^=b; b ^=a;//b=(a^b)^b=a a ^=b;//a=(a^b)^a=b } void swap2(int& a, int& b) { a+=b;//a=a+b b-=a;//b=b-(a+b)=-a ... 阅读全文
posted @ 2013-08-08 11:42 jiayouwyhit 阅读(320) 评论(0) 推荐(0)
摘要: 1.基本原理 在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题yⅠ和Ⅱ)中,而在中国则可以追溯至东汉出现的《九章算术》。 两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21... 阅读全文
posted @ 2013-08-08 09:46 jiayouwyhit 阅读(6578) 评论(0) 推荐(3)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页