说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序. 1.堆和栈有什么区别? (1)栈由操作系统分配和释放:堆则是程序员手动去申请释放: (2)栈是一块连续的内存区域,也就是栈顶地址和栈的最大容量是系统规定的:堆是不连续的内存区域,是因为系统使用链表来存储空闲内存地址. (3)对于栈,在函数调用时,第一个入栈的是函数调用语句的下一条可执行语句的地址,然后是函数参数(一般是从右到左)入栈,最后是局部变量(静态变量不入栈).函…