指针(1)

指针

声明和初始化

int* point; // int* 是一种类型,指向int的指针

int higgens = 5;
int* pt = &higgens;
cout << higgens; // 5
cout << &higgens; // 0012FED4
cout << *pt; // 5
cout << pt; // 0012FEDr

使用new来分配内存

  • C++的new运算符:找到一个长度正确的内存块,返回该内存块的地址

  • 为一个数据对象获得并指定分配内存的格式:typeName* pointer_name = new typeName

int nights = 1001;
int* pt = new int;
*pt = 1001;
cout << nights; // 1001
cout << &nights; // 0028F7F8
cout << *pt; // 1001
cout << pt; // 00033A98

使用delete释放内存

  • 删除ps指向的内存,但是不会删除ps本身。ps仍可以重新指向一个新分配的内存块。
int* ps = new int;
// do sth
delete ps;

指针与动态数组

  • 使用new创建动态数组

int* psome = new int [10];

delete [] psome;

  • 使用动态数组
double* p3 = new double [3];   // get a block of 3 double,它指向3个double值内存块的第一个元素
p3[0] = 0.1;
p3[1] = 0.2;
p3[2] = 0.3;
// now p3[1] = 0.2
p3 = p3 + 1;
// now p3[0] = 0.2
p3 = p3 - 1;
// point back to beginning
  • 数组的动态联编
int size;
cin >> size;
int* p = new int [size];
// do sth
delete [] p;
posted @ 2020-12-26 22:40  _一只土拨鼠  阅读(106)  评论(0)    收藏  举报