C++入门经典-例5.11-动态分配空间,堆与栈

C++入门经典-例5.11-动态分配空间,堆与栈

1:在程序中定义一个变量,它的值会被放入内存中。如果没有申请动态分配,它的值将会被放在栈中。栈中的变量所属的内存大小是无法被改变的,它们的产生与消亡也与变量定义的位置和存储方式有关。堆是一种与栈相对应的动态分配方式的内存。当我们申请使用动态分配方式存储某个变量时,这个变量就会被放入堆中。根据需要,这个变量的内存大小可以发生改变。

2:在创建变量之前,编译器并没有获取到变量的名称,而只是具有指向该变量的指针。这时申请变量的堆内存即申请自身指向堆。new是C++语言中申请动态内存的关键字,形式如下:

int* pI=new int;

    这样,pI指针就申请了动态方式,使用它在堆内申请内存存储in类型的值。

    具体例子代码如下:

// 5.11.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
    int* pI1 = NULL;
    pI1 = new int;//申请动态分配
    *pI1 = 111;//动态分配的内存储存的内容变成111的整型变量
    cout<<"pI内存的内容"<<*pI1<<",pI所指向的地址"<<pI1<<endl;
    int* pI2;
    //*pI2 = 222;  //直接赋值会导致错误!!!
    int k ;//栈中的变量
    pI2 = &k; //分配栈内存
    *pI2 = 222;//分配内存后方可赋值
    cout<<"pI内存的内容"<<*pI2<<",pI所指向的地址"<<pI2<<endl;
    return 0;
}

View Code

运行结果:

posted @ 2017-09-15 09:48 一串字符串 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值