摘要: 排列组合,自己也尝试着写过,用的深搜,但不是字典序的。看了浙大的acm集训资料,其中排列和组合的算法,不错,贴出来~~#include <iostream>using namespace std;const int MAXN = 100;int count;void _gen_perm(int *a, int n, int m,int l,int *tag,int *tmp){ if(... 阅读全文
posted @ 2009-11-14 20:34 liangjun 阅读(257) 评论(0) 推荐(0) 编辑
摘要: C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是 C标 准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可 以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Start reading... 阅读全文
posted @ 2009-10-09 20:53 liangjun 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 单个语句的时候,很多人都不加大括号。但是这样很容易出问题。比如说:if(condition) do_something();//记着做其他事情。do_other_something();假如以后因为修改代码注释掉了do_something(), 则会执行do_other_something();这样就出问题了。如果加上大括号的话,则可以避免出现这个问题。 阅读全文
posted @ 2009-05-21 21:03 liangjun 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 堆和栈的区别(转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两... 阅读全文
posted @ 2009-05-15 19:16 liangjun 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 明晰C++内存分配的五种方法的区别作者:出处:bbs责任编辑: 方舟 [ 2006-04-24 16:54 ]在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参... 阅读全文
posted @ 2009-05-15 19:05 liangjun 阅读(538) 评论(1) 推荐(0) 编辑
摘要: 文本文件与二进制文件 文本文件与二进制文件一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。 简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定... 阅读全文
posted @ 2009-05-15 19:03 liangjun 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 问: #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) 说能够在某些系统中内存对齐.(估计是得到一个2 或者4的整数倍) 这个好象就是(x+3)&~3 这样就能满足对齐了吗? 请从数学上给说说. 谢谢 答(作者:win_hate): 对于两个正整数 x, n 总存在整数 q, r 使得 x =... 阅读全文
posted @ 2009-03-24 12:27 liangjun 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 汇编语言的准备知识--给初次接触汇编者 1在接触到游戏修改后发现需要很多的汇编知识,于是找汇编基础知识恶补,到网上搜索到一篇不错的文章,给各位想我一样的初学者一起学习!教程: 汇编语言的准备知识--给初次接触汇编者(1)  汇编语言和CPU以及内存,端口等硬件知识是连在一起的. 这也是为什么汇编语言没有通用性的原因. 下面简单讲讲基本知识(针对INTEL x86及其兼容机)  ==========... 阅读全文
posted @ 2009-03-23 22:01 liangjun 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 献给汇编初学者-函数调用堆栈变化分析标 题: 献给汇编初学者-函数调用堆栈变化分析作 者: 堕落天才时 间: 2007-01-19,19:20链 接: http://bbs.pediy.com/showthread.php?threadid=38234跟一个朋友谈堆栈的时候就写下了这段文字,顺便发到这里给需要的看看吧汇编初学者比较头痛的一个问题///////////////////////////... 阅读全文
posted @ 2009-03-23 21:21 liangjun 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 函数调用约定和堆栈1 什么是堆栈编译器一般使用堆栈实现函数调用。堆栈是存储器的一个区域,嵌入式环境有时需要程序员自己定义一个数组作为堆栈。Windows为每个线程自动维护一个堆栈,堆栈的大小可以设置。编译器使用堆栈来堆放每个函数的参数、局部变量等信息。函数调用经常是嵌套的,在同一时刻,堆栈中会有多个函数的信息,每个函数占用一个连续的区域。一个函数占用的区域被称作帧(frame)。 编译器从高地址开... 阅读全文
posted @ 2009-03-23 21:14 liangjun 阅读(528) 评论(0) 推荐(0) 编辑