指针
int * p1,p2;
创建一个 int 型的指针,与一个 int 型 变量;
int* p1,*p2;
创建两个int型指针;
在C++中创建指针时,计算机将分配用来存储地址的内存,但不会分配用来分配指针所指向的数据的内在;
一定要在对指针应用解除引用运算符(*)之前,将指针初化为一个确定的,适当的地址,这是关于使用指针的金科玉律;
int* ps=new int;
...
delete ps;
这将释放ps指向的内存,但不会删除指针ps本身;
delete ps;
delete ps;
不能尝试释放已经释放的内存,C++标准指出这样的结果是不确定的;
另外,不能用delete释放声明变量所获得的内存;
例:
int jugs=6;
int* pi=&jugs;
delete pi;//not allowed,memory not allocated new;
只能用delete来释放使用new分配的内存;但对空指针使用delete是安全的;
一般来说不要创建两个指向同一内存块的指针,因为这将增加错误删除同一内存块两次的可能性;
但对于返回指针的函数,使用另一个指针是有用的;