- 博客(4)
- 收藏
- 关注
原创 栈和堆的区别
栈和堆的区别面试高频指数:★★★★★申请方式:栈是系统自动分配,堆是程序员主动申请。申请后系统响应:分配栈空间,如果剩余空间大于申请空间则分配成功,否则分配失败栈溢出;申请堆空间,堆在内存中呈现的方式类似于链表(记录空闲地址空间的链表),在链表上寻找第一个大于申请空间的节点分配给程序,将该节点从链表中删除,大多数系统中该块空间的首地址存放的是本次分配空间的大小,便于释放,将该块空间上的剩余空间再次连接在空闲链表上。栈在内存中是连续的一块空间(向低地址扩展)最大容量是系统预定好的,堆在内存
2021-10-30 22:38:18 140
原创 C++ 内存管理
C++ 内存管理面试高频指数:★★★★★C++ 内存分区:栈、堆、全局/静态存储区、常量存储区、代码区。栈:存放函数的局部变量、函数参数、返回地址等,由编译器自动分配和释放。堆:动态申请的内存空间,就是由 malloc 分配的内存块,由程序员控制它的分配和释放,如果程序执行结束还没有释放,操作系统会自动回收。全局区/静态存储区(.bss 段和 .data 段):存放全局变量和静态变量,程序运行结束操作系统自动释放,在 C 语言中,未初始化的放在 .bss 段中,初始化的放在 .data 段中,C+
2021-10-30 22:27:55 121
原创 C++ 程序编译过程
C++ 程序编译过程面试高频指数:★★★★☆编译过程分为四个过程:编译(编译预处理、编译、优化),汇编,链接。编译预处理:处理以 # 开头的指令;编译、优化:将源码 .cpp 文件翻译成 .s 汇编代码;汇编:将汇编代码 .s 翻译成机器指令 .o 文件;链接:汇编程序生成的目标文件,即 .o 文件,并不会立即执行,因为可能会出现:.cpp 文件中的函数引用了另一个 .cpp 文件中定义的符号或者调用了某个库文件中的函数。那链接的目的就是将这些文件对应的目标文件连接成一个整体,从而生成可执行的程
2021-10-30 22:11:26 1980
原创 int16, int32, int64等类型区别
int16, int32, int64等类型的区别Int16 意思是16位整数(16bit integer),相当于short 占2个字节 。Int32 意思是32位整数(32bit integer), 相当于 int 占4个字节。Int64 意思是64位整数(64bit interger), 相当于 long long 占8个字节。...
2020-07-25 16:53:42 8673
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人