堆栈-操作系统(一)

很早就想写一篇文章,关于操作系统中的堆栈。

说是堆栈,其实就是操作系统如何处理代码的,即如何为代码中的各种类型的变量、常量、方法体(函数体)等等分配内存空间。

了解这些内容,可以帮助我们做一些判断:

  1. 帮助我们在程序出错时更快找到错误地点。
  2. 帮助们尽可能利用效率高的方式编程。

接下来开始浅析操作系统中的堆栈。


堆:由程序员申请的一片数据区域,并在程序执行完之前由程序员手动释放。类似于链表结构。

栈:由操作系统自动分配的区域,在程序结束后自动回收。类似于栈结构。

上面只是给出了简单的理解,但是很模糊。翻译一下上面两句话,就是:行如C/C++中的malloc,new,delete,free这些关键字,对这些关键字声明的内容来说,这些内容存储在堆中;而行如一个函数中的局部变量,则是存储在栈中的。

这就是堆栈中最基础的东西。

给出一段简单的代码:

#include <iostream>
using namespace std;

void s_swap(int &a, int &b){   //形参放在栈中
    int c;                     //函数体中声明的变量放在栈中
    c = a;
    a = b;
    b = c;
}

int main(){
    int a = 6;                //函数体中声明的变量放在栈中 
    int 
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值