C++中何时使用new运算符,何时不应使用?
使用new运算符表示请求在堆上分配内存。如果可用内存足够,它将初始化内存并将地址返回给指针变量。
只有在数据对象应保留在内存中直到调用delete时才应使用new运算符。否则,如果不使用new运算符,则对象在其超出作用域时会自动销毁。换句话说,使用new的对象需要手动清理,而其他对象在其超出作用域时会自动清理。
以下是new运算符的语法。
pointer_variable = new datatype;
在上文语法中,pointer_variable是指针变量,内存地址将返回给它;datatype是内存的内置数据类型。
演示new运算符用法的程序如下所示。
示例
#include <iostream>
using namespace std;
int main () {
int *ptr1 = NULL;
ptr1 = new int;
float *ptr2 = new float(223.324);
*ptr1 = 28;
cout << "Value of pointer variable 1 : " << *ptr1 << endl;
cout << "Value of pointer variable 2 : " << *ptr2 << endl;
delete ptr1;
delete ptr2;
return 0;
}输出
上述程序的输出如下所示。
Value of pointer variable 1 : 28 Value of pointer variable 2 : 223.324
现在让我们理解上述程序。
new运算符用于初始化内存并将地址返回给指针变量ptr1和ptr2。然后显示ptr1和ptr2指向的内存位置中存储的值。最后,delete运算符用于释放内存。
显示此功能的代码片段如下:
int *ptr1 = NULL; ptr1 = new int; float *ptr2 = new float(223.324); *ptr1 = 28; cout << "Value of pointer variable 1 : " << *ptr1 << endl; cout << "Value of pointer variable 2 : " << *ptr2 << endl; delete ptr1; delete ptr2;
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP