1.常量指针
声明方法:
const int *p = &i;
int const *p = &i;//两种方法等价。
作用:不可更改指向地址的内容,但可修改指向地址。
int i = 1;
int j = 2;
const int *p = &i;
//int const *p = &i;
*p = 3; //错误,常量指针不可以修改指向地址的内容
p = &j; //正确,常量指针可以修改指向地址
2.指针常量
声明方法:
int* const p = &i;
作用:可更改指向地址的内容,但不可修改指向地址。
int i = 1;
int j = 2;
int* const p = &i;
*p = 3; //正确,指针常量可以修改指向地址的内容。
p = &j; //错误,指针常量不可以修改指向地址。
3.两者的组合
声明方法:
const int* const p = &i;
1
作用:不可更改指向地址的内容,也不可修改指向地址。
int i = 1;
int j =2;
const int* const p = &i;
*p =3; //错误
p = &j; //错误
4.常量与指针
只有常量指针可以指向常量,而普通指针、指针常量不行。常量指针不可以修改常量的值。
const int i = 1;
const int* pt = &i; //正确,常量指针可以指向常量
int* pi = &i; //错误,普通指针不可以指向常量。
int* const pr = &i; //错误,指针常量不可以指向常量。
|
|