c++学习(第6天)---new操作符和delete操作符
2021/5/20 20:58:27
本文主要是介绍c++学习(第6天)---new操作符和delete操作符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.new 操作符
作用:申请内存,利用new创建的数据,会返回该数据对应类型的指针
语法: new 数据类型
接下来利用代码认识new关键字的使用:
1.1 利用new关键字开辟的内存,返回的是开辟内存的地址
#include<iostream> using namespace std; int main() { void new_function();//函数声明 //调用函数 new_function(); system("pause"); return 0; } void new_function() { int *p;//定义int类型的指针p p=new int(10);//利用new关键字开辟一块内存,内存中存放的数据为10,利用指针p接收内存的地址 int q;//定义局部变量q q = (int)p;//将开辟的内存的地址强转为int型,利用q接收 cout << "开辟的内存地址为:" << q << endl; cout << "开辟的内存地址为:" << q << endl; cout << "开辟的内存地址为:" << q << endl; cout << "开辟的内存地址为:" << q << endl; }
运行结果:
1.2 获取开辟内存中初始化的数据
#include<iostream> using namespace std; int main() { int * new_function();//函数声明 int *t = new_function();//定义int类型指针t //调用函数 cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; system("pause"); return 0; } int * new_function() { int *p;//定义int类型的指针p p=new int(10);//利用new关键字开辟一块内存,内存中存放的数据为10,利用指针p接收内存的地址 return p; }
运行结果:
2.delete关键字
作用:释放利用new关键字开辟的内存
语法: detete 指针变量
#include<iostream> using namespace std; int main() { int * new_function();//函数声明 int *t = new_function();//定义int类型指针t //调用函数 cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; cout << "内存中存放的数为:" << *t << endl; delete t; cout << "释放内存以后的数据为:" << *t << endl; system("pause"); return 0; } int * new_function() { int *p;//定义int类型的指针p p=new int(10);//利用new关键字开辟一块内存,内存中存放的数据为10,利用指针p接收内存的地址 return p; }
运行以上代码发现出现了异常。因为我们已经释放了内存空间,再去读取里面的值时,肯定要报错
这篇关于c++学习(第6天)---new操作符和delete操作符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中怎么实现输入法弹出时禁止页面向上滚动?-icode9专业技术文章分享
- 2024-11-26WebSocket是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-26页面有多个ref 要动态传入怎么实现?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中实现一个底部输入框的常见方法有哪些?-icode9专业技术文章分享
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版