指针(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;

浙公网安备 33010602011771号