SweetDream
高歌一壶新酿酒,醉抱青山不必归。
char  * const cp; ( * 读成 pointer to )

     cp is a const pointer to char ,亦即指针常量cp(cp指向的地址)不可改变,但*cp,也就是cp所指对象能够改变。  

const char * p;

char const * p;

     p is a pointer to const char,亦即指向常量的指针,所以p所指的对象不可改变。

void main()

{

 int a = 2;

 int b = 4;

 

int const* pa = &a;//常量指针,指针指向常量

 int *const pb = &b;//指针常量,指针本身是常量

 

pa = &b;//right 常量指针,它所指向的地址可以改变

 *pb = 7;//right 指针常量,它所指向的值可以改变

 //*pa = 7;//error

 //pb = &b;//error

}

 

 

 

typedef /* [string] */ const CHAR *LPCSTR; // 可见LPCSTR为常量指针

 

int intArray[10];

intArray++;   // ERROR,可见数组名可以转换为指向其指代实体的指针,但是它只能被看作一个指针常量,不能被修改。

// 不过数组作为形参传递后在函数体内,其失去了本身的内涵,仅仅只是一个普通指针,而不再是指针常量

 

posted on 2006-03-15 10:58  SweetDream  阅读(422)  评论(0)    收藏  举报