首页 > 编程语言 > 详细

c/c++操作访问数据,是堆中的数据快还是栈中的数据快

时间:2014-02-17 04:26:39      阅读:517      评论:0      收藏:0      [点我收藏+]

  这里的问题其实问的是对堆与栈的数据访问有什么不同。

  观察如下代码:

bubuko.com,布布扣
#include<stdio.h>
#include<iostream>
using namespace std;

int main(){
    int a;
    int *pb=(int*)malloc(sizeof(int));

    a=1234;
    *pb=123456;

    return 0;
}
bubuko.com,布布扣

  在观察汇编的情况:

  bubuko.com,布布扣

  明显观察到,对栈数据赋值,直接将数据放到目标地址。而堆中的数据,先把pb的值放到寄存器中,再把值放到寄存器所指向的地址。

  总结:对与堆内存的访问比栈内存的访问多一个步骤。

c/c++操作访问数据,是堆中的数据快还是栈中的数据快

原文:http://www.cnblogs.com/huhuuu/p/3551554.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!