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; }
运行以上代码发现出现了异常。因为我们已经释放了内存空间,再去读取里面的值时,肯定要报错