C++程序设计入门 引用和动态内存管理学习

引用:

引用就是另一个变量的别名,通过引用所做的读写操作实际上是作用于原变量上。

由于引用是绑定在一个对象上的,所以定义引用的时候必须初始化。

函数参数:引用传递

1.引用可做函数参数,但调用时只需 传普通变量即可

2.在被调函数中改变引用变量的值,则改变的是实参的值

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
void swep(int &n1,int &n2)
{
    int temp;
    temp=n1;
    n1=n2;
    n2=temp;
}
int main()
{
    int a,b;
    a=1,b=2;
    swep(a,b);
    cout << a << " " << b << endl;
    return 0;
} 

动态内存管理

C++中通过运算符new申请动态内存

new  <类型名> (初值) ; //申请一个变量的空间

new  <类型名>[常量表达式] ; //申请数组

? 如果申请成功,返回指定类型内存的地址;

? 如果申请失败,返回空指针(整数0)。

?动态内存使用完毕后,要用delete运算符来释放。

delete   <指针名>; //删除一个变量/对象

delete []<指针名>; //删除数组空间

原文地址:https://www.cnblogs.com/wjc2021/p/10664407.html

时间: 2024-08-30 01:46:15

C++程序设计入门 引用和动态内存管理学习的相关文章

动态内存管理(引用计数)

c++的动态内存管理是非常重要的,操作不当很容易引起内存泄漏, 下面我详细写了一些内存管理该注意的地方,包括引用计数的实现 深拷贝浅拷贝 #include <iostream>using namespace std; class String{public: String()  :_str(new char[1]) {  *_str = '\0'; } String(char* str)  :_str(new char[strlen(str)+1])  //开辟一段新空间给_str {  st

c++动态内存管理

一.内存的常见分配方式 1. 从静态区分配,一般是全局变量和static类型变量 2.从栈区分配内存,一般是局部的变量,会随着所在函数的结束而自动释放 3.从堆中分配,一般是使用手动分配,使用malloc()函数和new来申请任意大小空间,不过要手动释放空间,相应的使用free()函数和delete释放, 如果不释放该空间,而且指向该空间的指针指向了别的空间.则该空间就无法释放,造成内存泄露,造成了内存浪费 二.内存的使用规则 1.在使用malloc()或new申请空间时,要检查有没有分配空间成

浅谈C++容器动态内存管理的优化

在信息学竞赛中,C++的容器的用途非常广泛,但经常因常数过大而超时.怎样才能提高它们的效率呢? 我们知道,容器是存储同一类对象的对象,既然"对象"我们无法改变,那么我们只能从"存储"入手,不难想到,不同容器在实现上的根本区别是它们对应着不同的内存组织方式,内存管理无疑是这种实现的核心,所以优化内存管理是加快容器效率的最好途径之一. 一.内存分配器简介 怎样才能优化内存管理呢?很简单,C++为我们提供了这样的接口,我们可以通过自定义容器模板中的最后一个allocato

动态内存管理

(1).c中动态内存管理方式 malloc.calloc.realloc在堆上开辟空间.free将申请的空间释放掉 void *malloc( size_t size );      void *calloc( size_t num, size_t size );      void *realloc( void *memblock, size_t size ); (2).C++中动态内存管理 通过new和delete运算符进行动态内存管理 (3).malloc/free和new/delete的

iOS开发之c语言基础Lesson-10 动态内存管理 上课笔记 与 试题练习

//函数声明 int max(int a, int b); char * getString(); int main(int argc, const char * argv[]) { //////////////////Lesson 10 动态内存管理 课堂笔记 和 练习 ///////复习上周所学 /////////常量和变量的区别: //常量中的内容不能被修改,只能访问: //变量中存储的数据时可以随时修改的. // //const 关键字的作用: 修饰变量不可改变.当做常量使用 //  c

C语言动态内存管理

1-概述 动态存储管理的基本问题是:系统如何按请求分配内存,如何回收内存再利用.提出请求的用户可能是系统的一个作业,也可能是程序中的一个变量. 空闲块 未曾分配的地址连续的内存区称为"空闲块". 占用块 已分配给用户使用的地址连续的内存区称为"占用块". 系统刚刚启动时,整个内存可看做一个大的"空闲块",随着用户请求的进入,系统依次分配相应的内存. 在系统运行过程中,内存被分为两大部分:低地址区(若干占用块)和高地址区(空闲块). 经过一段时间后

c++中的动态内存管理

c++中的动态内存管理问题 c++中使用new和delete实现动态内存管理.new和delete实现动态管理对象,new[]和delete[]实现动态管理对象数组.c++中的new和delete运算符均使用我们c中学过的malloc和delete函数实现动态内存的开辟. 首先,先简单介绍下c中的几个动态内存函数malloc,realloc,calloc,free; void *malloc(size_t size); //动态内存开辟函数 void free(void *pointer);  

动态内存管理---new&amp;delete

动态内存管理 动态对象(堆对象)是程序在运行过程中在动态内存中用new运算符创建的对象. 由于是用户自己用new运算符创建的,因此也要求用户自己用delete运算符释放,即用户必须自己管理动态内存. 计算机内存数据区常有三种分区,即静态数据区.堆区.桟区. 1.程序在编译时就为静态变量和静态对象分配了静态数据存储区.在静态数据区中存储的变量或对象在该程序的整个运行期间都存在, 它们的生命周期贯穿整个程序的运行周期.比如全局变量.static(静态)变量等都是存储在静态数据区. 2.调用函数时,函

FreeRTOS 动态内存管理

本章节为大家讲解 FreeRTOS 动态内存管理,动态内存管理是 FreeRTOS 非常重要的一项功能,前面章节讲解的任务创建. 信号量. 消息队列. 事件标志组. 互斥信号量. 软件定时器组等需要的 RAM 空间都是通过动态内存管理从 FreeRTOSConfig.h 文件定义的 heap 空间中申请的. 动态内存管理介绍FreeRTOS 支持 5 种动态内存管理方案,分别通过文件 heap_1,heap_2,heap_3,heap_4 和 heap_5实现,这 5 个文件在 FreeRTOS