面试总结第一谈
转眼间已经大四,面临着四处笔试面试的过程,昨天刚刚参加完一家游戏公司的面试。结果很是遗憾,面试官并没有很刻意的为难我,但基础知识不牢靠是最大的硬伤。
也许很多函数方法库你都用过,也知道原理和使用方法,但是对专业术语描述却不是那么完美。这会让你吃大亏。
1,面试常用的几个小问题:c++的内存管理方式。
c++中,内存分为5个区,分别是堆丶栈丶自由储存区丶全局/静态储存区和常量储存区。
栈:这是我们十分常用的一中内存管理方式,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置 于处理器的指令集中,效率很高,但是分配的内存容量有限,一般用来存放指针。
堆:这是我们平时用的最多的一种内存声明方式,也就是我们使用new来申请的一块内存空间,它的申请和释放都由我们应用程序进行,编译器不会自动释放。通常,一个new就对应着一个delete,如果程序未将这块内存释放,再程序结束后操作系统会自动回收。
自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态储存区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。