首页 > 代码库 > 常量指针和指针常量
常量指针和指针常量
常量指针:
const int *p = &a; 或者 int const *p = &a;
*p是常量,不能将*p作为左值进行操作。但指针p还是一个变量,它的内容存放常量的地址,所以先声明常量指针再初始化是允许的,指针也是允许修改的
int a = 0,b = 1;const int *p; // 声明常量指针pp=&a; // p指向ap=&b; // 修改指针的值p让其指向b,允许*p=2; // 修改指针所指向的变量的值,不允许
指针常量:
int * const p = &a;
指针本身是一个常量,指针指向一个变量
即p是常量,不能作为左值进行操作,但允许修改其指向的内容,即*p是可修改的。指针常量必须在声明的同时对其初始化,不允许先声明一个指针常量随后再对其赋值,这和声明一般的常量是一样的。
int a = 0,b = 1;int *const p1 = &a; int *const p2; // 不允许,必须常量定义时必须对其初始化p2 = &b; // 不允许,p2是指向a的常量, 不允许作为左值*p1 = 2; // 允许, 指针指向的是一个变量, 可以修改指针*p1的值
快速记忆:
把一个声明从右向左读。
char * const cp; ( * 读成 pointer to )
cp is a const pointer to char
const char * p;
p is a pointer to const char;
常量指针和指针常量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。