C++:new操作符
Posted 没事就要敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++:new操作符相关的知识,希望对你有一定的参考价值。
1 new操作符的用途
C++中利用new操作符在堆区开辟数据。
注意:
-
堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 delete
-
利用new创建的数据,会返回该数据对应的类型的 指针
2 语法
语法:new 数据类型
2.1 基本语法
new 数据类型(值)
测试代码:
#include <iostream>
#include <string>
using namespace std;
//使用new在堆区分配一个int变量,并返回变量的指针
int* func1()
int *a = new int(10); //在堆区开辟一块内存,存放变量a,并初始化为10
return a; //返回堆区中的指针变量
使用new在堆区分配一个string 变量,并返回变量的指针
string* func2()
string *str = new string("Hellow World!");
return str;
int main()
int *p = func1();
string *str = func2();
cout << *p << endl;
cout << *p << endl;
cout << *str << endl;
cout << *str << endl;
//利用delete释放堆区数据
delete p;
//cout << *p << endl; //报错,被释放的空间不可访问
cout << *str << endl;
return 0;
输出结果:
10
10
Hellow World!
Hellow World!
Hellow World!
2.2 new与数组
new 数据类型 [数组大小]
[]
中的大小必须是整型,但不必是常量。
测试代码:
使用new
在堆区分配一个int数组,大小为10,并返回指向第一个int的指针。
#include <iostream>
using namespace std;
int main()
int* arr = new int[10];
for (int i = 0; i < 10; i++)
arr[i] = i;
for (int i = 0; i < 10; i++)
cout << arr[i] << " ";
cout << endl;
//释放数组 delete 后加 []
delete[] arr;
return 0;
输出结果:
0 1 2 3 4 5 6 7 8 9
注意:
- 使用new开辟的数组通常称为 动态数组,但我们并没有得到一个数组类型的对象,而是得到一个数组元素类型的指针。
- 释放数组 delete 后加 []
以上是关于C++:new操作符的主要内容,如果未能解决你的问题,请参考以下文章