【学习笔记】指针常量和常量指针
如下图,作为指针常量,ptr 永远指针指向红色的 0x0000,但里面的值 666 可以被重新赋值为其他的值。常量指针寓意着指针所指的值为常量,不能通过指针来修改所指的值,但可以修改指针指向的地址。,它的语法格式是 const 在 * 右边。这种情况下,该指针指向的地址和值都不能改变。下面我们举一个例子来进行具体的讲解。,但可以修改该地址中的内容。
·
目录
指针常量
指针常量是指指针是一个常量,它的语法格式是 const 在 * 右边
int *const ptr = &a;
它的含义是,不修改指针指向的地址,但可以修改该地址中的内容
下面我们举一个例子来进行具体的讲解
int a = 10;
int b = 20;
int *const ptr = &a; // ptr 是指针常量,指向 a
*ptr = 15; // 合法,改变 a 的值
ptr = &b; // 非法,不能改变 ptr 的指向
如下图,作为指针常量,ptr 永远指针指向红色的 0x0000,但里面的值 666 可以被重新赋值为其他的值
常量指针
常量指针寓意着指针所指的值为常量,不能通过指针来修改所指的值,但可以修改指针指向的地址
const int *ptr = &a;
int a = 10;
int b = 20;
const int *ptr = &a; // ptr是常量指针,指向a
*ptr = 15; // 非法,不能通过ptr修改a的值
ptr = &b; // 合法,可以改变ptr的指向
是指针常量也是常量指针
这种情况下,该指针指向的地址和值都不能改变
const int *const ptr = &a;
int a = 10;
int b = 20;
const int *const ptr = &a; // ptr既是指针常量也是常量指针
*ptr = 15; // 非法,不能通过ptr修改a的值
ptr = &b; // 非法,不能改变ptr的指向
参考
- 《Primer C++》
- 《C++ 面向对象高效编程》
- 简述指针常量与常量指针的区别
更多推荐
所有评论(0)