指针

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是安全的;

一般来说不要创建两个指向同一内存块的指针,因为这将增加错误删除同一内存块两次的可能性;

但对于返回指针的函数,使用另一个指针是有用的;

posted @ 2014-07-26 19:39  刘景  阅读(141)  评论(0)    收藏  举报