指针是保存内存地址的变量

定义指针

unsigned short int age;
unsigned short int yourage;
int *age=&age;
yourage=*age;

1 指针的用途
(1)处理自由存储区的数据。
(2)访问类的成员数据和函数。
(3)通过引用的方式向函数传递变量。

2 处理自由存储区的数据

使用关键字new分配自由存储区中的内存。

unsigned short int * pPointer;
pPointer=new unisigned short int;

当你对一个指针使用delete时,它指向的内存空间被释放。如果再次对该指针使用delete,将使你的程序崩溃。
因此,当使用delete删除一个指针时,把它赋为0(空指针)。删除一个空指针则是安全的。例如:
Animal *pDog=new Animal;
delete pDog;
pDog=0;
......
delete pDog;//OK
如果不对new产生的指针进行delete操作将会造成内存泄漏,另外一种可能造成内存泄漏的情况是:在没有删除一个指针
之前就对其重新赋值。


3  const指针
const int *pone;
int * const ptwo;

pone是一个指向整形常量的指针,该指针指向的值是不能改变的。

ptwo 也是一个只想整型的常指针,它指向的整数可以改变,但是ptwo这个指针不能指向其他变量。

4 自由存储区中的成员函数
  一个或多个类的数据成员可以是指向自由存储区对象的一个指针。内存的分配可以在类的构造函数或用其他的方式进行,
而在析构函数中释放内存。

5 迷途指针、失控指针、悬浮指针
  迷途指针是当对一个指针调用delete,这样会释放它所指向的内存,但是你并没有将它设置成空时引起的。
  而后如果你没有重新赋值就试图再次使用该指针,这样引起的后果是不可预料的。

6 const成员函数
  当一个类的成员函数声明为const时,如果试图从函数内部改变对象的数据,编译器就会给出出错信息。
  如果你声明了一个指向const型对象的指针,通过该指针你只能调用const的方法。
 posted on 2008-10-25 01:02  清水湾  阅读(236)  评论(0)    收藏  举报