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,可见数组名可以转换为指向其指代实体的指针,但是它只能被看作一个指针常量,不能被修改。
// 不过数组作为形参传递后在函数体内,其失去了本身的内涵,仅仅只是一个普通指针,而不再是指针常量
浙公网安备 33010602011771号