什么是栈?什么是堆?函数是如何被调用的? 博主在元旦为您呈上一个简单介绍~
malloc
、new
等函数分配内存,以及free
、delete
等函数释放内存。常量存储区用于存储程序中的常量数据,如字符串常量和其他只读数据。这些数据在程序运行期间不可修改,通常存储在只读内存区域。
寄存器是CPU内部的高速存储器,用于存储临时数据和指令。它们的速度极快,容量极小,直接由CPU访问,用于快速计算和数据传输。
在函数调用过程中,寄存器如ebp
(栈低指针)和esp
(栈顶指针)扮演着重要的角色。这两个寄存器中存放的是地址,用来维护正在调用的函数的函数栈帧。
main
函数是被其他函数调用的。ebp
、esp
的值会被更新以回收内存空间,但内存的值不变。return
函数会将返回值放到寄存器,因此返回值不会随着内存空间回收而失效。