new:申请空间
new 的类型 一定要和赋值匹配上
如结构体:
#include <iostream>
using namespace std;
int main()
{
int *p1 = new int;
*p1 = 22;
cout << *p1 << endl;
delete p1;
system("pause");
return 0;
}
注:
int *p1 = new int;
*p1 = 22;
和 下面一样
int *p1 = new int(22);
申请数组空间
#include <iostream>
using namespace std;
int main()
{
int *p = new int[3];//申请长度为3的数组空间(存int类型)
p[0] = 12;
p[1] = 20;
p[2] = 30;
cout << p[0] << endl;
delete[] p;//数组要在delete后面加【】
system("pause");
return 0;
}
赋值可以用memset()
int类型 4字节
#include <iostream>
using namespace std;
int main()
{
int *p = new int[3];//申请长度为3的数组空间(存int类型)
memset(p, 0, 3 * 4);//int4字节 3*4 全赋值为0
cout << p[0] << endl;
delete[] p;//数组要在delete后面加【】
system("pause");
return 0;
}
附加:*的使用
1.在声明指针时
2.在指针的读、写时
#include <iostream>
using namespace std;
int main()
{ //声明*变量时
int a = 12;
int *p = &a;
//读、写
cout << *p << endl;
*p = 123;
cout << a << endl;
system("pause");
return 0;
}