常量指针和指针常量
2019-07-02 本文已影响0人
una_sheng
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; 错误,不可以修改指向的对象