首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >内存分区&&C++之引用的深度剖析

内存分区&&C++之引用的深度剖析

作者头像
阑梦清川
发布2025-02-24 12:17:19
发布2025-02-24 12:17:19
1580
举报
文章被收录于专栏:学习成长指南学习成长指南

1.内存分区

意义:不同区域数据赋予不同的生命周期,我们可以更加灵活的进行编程的管理;

(1)代码区:存放二进制的机器指令, 代码区的两个特点, 一个是共享的,就是无论我们运行多少次这个程序,内存里面都会有一份,而不会进行拷贝; 另外一个特点是只读的,什么是只读呢,就是我们无法进行写的操作,防止程序意外的修改指令;

(2)全局区:全局变量,静态变量(static修饰的变量),常量等等 常量分为字符串常量,const修饰的全局变量(const修饰的全局变量在全局区,const修饰的局部变量不在全局区); 该区域数据特点:程序结束,操作系统管理释放

(3)栈区:由编译器管理分配和释放;-------不要返回局部变量的地址 栈区存放的是形参和局部变量

(4)堆区:由程序员开辟和释放; 我们在堆区上使用new关键字开辟空间,把int类型的数据10的地址传递给p指针(也就是说返回的是指针),指针是在栈区的,指针指向的10是使用new在堆区开辟的;

(5)mew运算符的使用:在堆区开辟空间,使用delete释放空间; 我们使用delete把在堆区开辟的空间释放掉,释放之后如果还要打印,就是非法访问了;

(6)mew运算符开辟数组:我们需要使用中括号(小括号表示开辟一个元素的空间),利用循环进行赋值和打印,最后释放,释放的时候要加上中括号(表示我们要释放一段很长的空间);

2.引用

(1)引用的基本语法 引用就是取别名,基本的格式就是   数据类型 &别名=原名,原名和别名指向的是同一块内存空间;对别名的修改同样会影响原名 ;

(2)引用的注意事项 1.必须要初始化,2.引用初始化以后,不能更改引用 理解:必须初始化就是不能只写int &b却不告诉编译器这个b是哪个变量的引用,这样做是不行的,我们必须为b指定一个引用的对象;不能修改就是我们的int a=10;int b=20;原来我们的int&c=a;后来我们想要进行修改,我们写的是b=c,这样写并不能够修改引用的对象,而是进行的赋值;

(3)引用作为函数的参数

我们利用数据的交换认识一下引用如何作为函数的参数;

(4)引用作为函数的返回值

不要返回局部变量的引用,而且使用引用时,函数可以作为左值修改变量的大小;

(5)引用的本质

引用的本质是指针常量:

(6)常量引用

引用通常用来修饰实参:这样就可以防止一些操作改变实参的数值。        

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.内存分区
  • 2.引用
    • (3)引用作为函数的参数
    • (4)引用作为函数的返回值
    • (5)引用的本质
    • (6)常量引用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档