[C++]new指令
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...