c++自学笔记008-指针的延伸

本文探讨了C++中的动态内存分配和引用。动态内存分配允许在运行时创建未命名变量和数组,但需要注意内存泄露问题,必须使用`delete`释放内存。引用作为变量的别名,其值和内存地址与原变量相同,引用在定义时必须初始化,不能独立存在,且不能用于数组或void类型。引用在函数参数中使用可以实现变量值的直接修改。
摘要由CSDN通过智能技术生成

动态分配内存

int num=1;
int arrays[10];
in *ptr_int = nwe int;//定义一个未命名变量
int *ptr_arrays = new int[10];//定义一个未命名数组

该段代码第3,4行分别动态定义了一个未命名变量和一个未命名数组。在运行阶段运行到该代码,计算机将为一个int值(变量或数组等需要定义的量)分配内存空间,是没有名字的,只是用ptr_int(ptr_arrays)指针指向该空间地址。所以,需要注意的是,定义时,该空间唯一标示就是它的指针,若此后对指针进行了算术运算,让指针指向了别处,本处的空间变量任然存在,但没有可以调用该空间的途径了,此时被称为内存泄露。故,应该特别注意,分配了动态内存并且使用完之后,记得用delete关键字进行释放内存。即以下代码:

delete ptr_int;//释放ptr_int指向的未命名变量。
delete [] ptr_arrays;//释放ptr_arrays指向的未命名数组。注意释放方式多了个中括号

动态分配的未命名内存只在运行时有效,编译时是不存在的。

    int num[5];
    int *nums =new int[5];
    cout << sizeof(num) << "\t\t" << sizeof(nums);

上段代码运行结果为:20 4

注:
1.用new分配内存
指针的真正用武之地:在运行阶段分配未命名的内存用以存储值。
在此情况下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值