[C++]new指令

发布时间 2023-12-19 14:26:33作者: Rosyr

New指令

new 是在 c++ 中开辟空间的关键字

new开辟的空间在堆上 而一般声明的变量存放在栈上

(不懂.jpg)

语法

单变量

int *p = new int(3);
cout << *p << endl;

*p 即为新创建的变量

此后也可以对 *p 进行赋值操作

int p = *new int(5);
cout << p << endl;

p 即为新创建的变量

这种写法避免了繁琐的 * 来读取值

数组

int *p = new int[3];
cout << p[0] << p[1] << p[2] << endl;

数组也同样用指针接

用法见 指针

结构体

#include<iostream>
using namespace std;

struct person{
	string name;
	int year;
};

int main(){
	
	person *p = new person{"rosyr", 19};
	cout << p->name << " " << p->year << endl; 
	
	return 0;
}

注意 结构体处无法使用 *p.name 的方式取值

  • 结构体 + 数组:
person *p = new person[2]{{"rosyr", 19},{"nobody", 18}};
cout << p[1].name << " " << p[1].year << endl; 

此处反而要用 . 来取到属性值 (interesting...