摘要: 函数调用是程序设计中的重要环节,也是程序员应聘时常被问及的,本文就函数调用的过程进行分析。 一、堆和栈 首先要清楚的是程序对内存的使用分为以下几个区: l 栈区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。 l 堆区(heap):一般由程序员 阅读全文
posted @ 2017-04-20 11:16 泡面小王子 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 如下C++程序 int i=0x22222222; char szTest[]=”aaaa”; //a的ascii码为0x61 func(I, szTest); //函数原型为void func(int a,char *sz); 请问刚进入func函数时,参数在栈中的形式可能为 (左侧为地址,右侧为 阅读全文
posted @ 2017-04-20 10:53 泡面小王子 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 堆和栈究竟有什么区别? 主要的区别由以下几点: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 阅读全文
posted @ 2017-04-20 10:15 泡面小王子 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。现编写循环链表程序来实现约瑟夫环问题并输出每次出列的结果~ 用循环 阅读全文
posted @ 2017-04-20 08:17 泡面小王子 阅读(293) 评论(0) 推荐(0) 编辑