上一页 1 2 3 4 5 6 7 ··· 13 下一页

2012年3月19日

栈内存与堆内存

摘要: 一、程序在编译的时候占用的内存分为以下几个部分:1 、栈区( stack )— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.2 、堆区( heap )— 亦称动态内存分配.程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存.但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。注意它与数据 阅读全文

posted @ 2012-03-19 18:57 阿杜的世界 阅读(169) 评论(0) 推荐(0) 编辑

2012年3月16日

一个教科书一般的“空指针”错误

摘要: #include <stdio.h> #include <afx.h> /*void my_strcpy(char *s,char *t) { int i = 0; while ((s[i] = t[i]) != '\0') i++; } */ void my_strcpy(char *s,char *t) { ASSERT ((s!=NULL)&&(t!=NULL)); while ((*s = *t) != '\0') { s++; t++; } } int main() { char *raw = "abc 阅读全文

posted @ 2012-03-16 13:13 阿杜的世界 阅读(125) 评论(0) 推荐(0) 编辑

C语言中的register关键字

摘要: A register variable declaration advises the compiler that the variable in question will be heavily used.register的声明的变量,告诉编译器,这个变量将会被频繁使用。The idea is that register variables are to be placed in machine registers, which may result in samller and faster program.这就要求将register变量存放在机器寄存器中,这可以带来更小,更快的程序。Bu 阅读全文

posted @ 2012-03-16 11:28 阿杜的世界 阅读(200) 评论(0) 推荐(0) 编辑

2012年3月14日

向函数传递结构体信息

摘要: 三种方式:1、传递结构体的成员,也就是说,把结构体成员作为函数参数传递2、传递结构体指针(这是我们乐于使用的),优点是高效率,缺点是不安全,不过,也可以通过加const关键字弥补了3、传递结构体本身,在处理小型结构体时经常使用 阅读全文

posted @ 2012-03-14 21:09 阿杜的世界 阅读(323) 评论(0) 推荐(0) 编辑

2012年3月11日

利用霍纳规则求多项式的值(递归)

摘要: 7 #include <stdio.h> 8 #include <stdlib.h> 9 #define LEN 3 10 int hornor(int [],int,int); 11 int main() 12 { 13 int a[3]={1,2,3};//数组表示多项式的系数 14 int x=2;//多项式的自变量值 15 int result=0;//存放结果 16 result = hornor(a,0,2); 17 printf("%d\n",result); 18 exit(0); 19 } 20... 阅读全文

posted @ 2012-03-11 15:05 阿杜的世界 阅读(396) 评论(0) 推荐(0) 编辑

2012年3月6日

全排列算法(递归)

摘要: 一直学习,有时候会感到厌烦,天天呆在自习室,把人都傻了。考研刚刚结束,打算把数据结构再复习复习,也给自己找点编程的东西。接受了朋友的建议,先从递归算法开始复习吧。 递归是一种机制,一种思想。有的问题本身就是递归定义的,例如求阶乘,二叉树……;有的问题表面上看来不是递归定义,但是也可以用递归来解决,我认为这有点像分治法,即减小问题的规模。实现递归,有两个必要条件,即1.确定递归公式;2.确定边界(终了)条件; 例1:求n个元素的全排列? 分析:按照排列组合的知识,我们知道结果有n!种。在这里,我为了便于自己分析,仅取[a,b,c],即令n=3。结果是:a,b,c; a,c... 阅读全文

posted @ 2012-03-06 09:04 阿杜的世界 阅读(305) 评论(0) 推荐(0) 编辑

2012年2月29日

应该过初试了,继续努力,阿杜

摘要: 分数下来了,不算太高,但是看着排名,应该可以过了初试了,我感觉挺幸运的。心想,一个人能不能做成一件事情,我觉得最大的影像因素是他内心的渴望有多么强烈,考研的这一年里,我的生活全部被一个主题主宰,那就是……考研、自习,现在,这个成绩,算是对我努力的一种反映,我,配得上这份成绩。 开心过后,我开始思考复试的问题,准备提前联系一下导师;然后认真看书,我想,复试我也得拿出120%的劲头去对待,不要考虑太多,全力以赴,追求卓越,我一定能够圆梦南开!!!! 阅读全文

posted @ 2012-02-29 14:32 阿杜的世界 阅读(181) 评论(0) 推荐(0) 编辑

2012年2月26日

指针类型的变化

摘要: #include <STDIO.H> int main() { //无符号整型,4个字节 unsigned int a = 0xFFFFFFF7; //无符号整型强制转化为无符号char型,只保留最低一个字节,所以i的值为0x000000f7 unsigned char i = (unsigned char)a; //注意!!!!该步骤只是将一个unsigned int型的指针强制转化为一个char型的指针,所以改变的 //只是指针变量a的指针的寻址方式,原来指针为int*时,地址+1相当于加4个字节而现 //在指类型为char*,则地址+1相当于+1个字节。 char* ... 阅读全文

posted @ 2012-02-26 21:48 阿杜的世界 阅读(276) 评论(0) 推荐(0) 编辑

借助类型转化考察浮点数在内存中表示的一个心得

摘要: #include <IOSTREAM> #include <STDIO.H> #include <STRING.H> #include <conio.H> using namespace std; int main() { float a = 1.0f;//在内存中的十六进制表示为3f800000(按照IEEE754标准) std::cout << (int)a <<endl;1 std::cout << &a <<endl;//输出的是变量a的地址0012FF7C //(int&) 阅读全文

posted @ 2012-02-26 19:42 阿杜的世界 阅读(156) 评论(0) 推荐(0) 编辑

printf的参数赋值的顺序

摘要: #include <stdio.h> int main() { int b=3; int arr[]={6,7,8,9,10}; int *ptr = arr; printf("%d\n",*ptr); *(ptr++) += 123; printf("%d,%d\n",*ptr,*(++ptr)); //printf的参数赋值顺序是从右向左 int i=5; printf("%d,%d\n",i++,i);//5,5 i=5; printf("%d,%d\n",++i,i);//6,5 i=5; pr 阅读全文

posted @ 2012-02-26 19:07 阿杜的世界 阅读(398) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 13 下一页

导航