常量指针和指针常量

1、常量指针

定义:只能读取内存中数据,不能修改内存中数据的指针。称为指向常量的指针,简称常量指针

声明:const int *p;   int const *p;

2、指针常量

定义:指针指向的位置不能变,即指针本身是一个常量,但指针指向的内容可以变

声明:int * const p = &a;

注:指针常量必须在声明的时候对其初始化,不允许先声明一个指针常量再对其赋值

3、示例

int a = 1; 定义变量

const int b = 2; 定义常量

const int *ptr1 = &a; 定义常量指针

int * const ptr2 = &a;定义指针常量

int *ptr3=&b;  错误, 不能把常量的地址赋给指针变量

const int* ptr4=&b; 正确,可以把常量的地址赋给常量指针

*ptr1=3; 错误,间接引用常量指针不可以修改内存中的数据

*ptr2=4;  正确,间接引用指针常量可以修改内存中的数据

ptr1=&b;  正确,常量指针可以指向其他变量

ptr2=&b;  错误,指针常量不可以指向其他变量

const int * const ptr5=&a;  常量指针常量,即不可以间接引用修改内存数据,也不可以指向别的变量

*ptr5=5;  错误,不可以间接引用修改内存数据

ptr5=&b; 错误,不可以修改指向的对象

你可能感兴趣的:(常量指针和指针常量)