软件开发 - 面试

1. 全局变量和局部变量在内存中的区别?

全局变量存储在全局(静态)存储区;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配内存;

栈:由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数,局部变量,返回值以及函数的返回地址。

堆:用于程序动态申请分配的释放空间。C语言中的malloc和free,C++中的new和delete均是在堆中进行的。正常情况下,程序员申请的空间在使用结束后应该释放,如果没有及时释放,则在程序结束时系统自动回收。

 2. 进程和线程的区别?

进程是程序的一次运行,线程可以理解为进程中执行的一段程序片段。

进程之间是独立的,线程运行在进程空间内,同一进程所产生的的线程共享同一内存空间。

线程是属于进程的,当进程退出时该进程所产生的的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。

 

 

posted @ 2017-11-02 19:53  笨笨最聪明  阅读(92)  评论(0)    收藏  举报