常量指针和指针常量和常量指针常量
程序员文章站
2022-03-11 22:31:24
...
常量指针和指针常量和常量指针常量
常量指针:指向常量的指针。
示例一:
int n = 10;
const int *p = &n;
此时不能通过指针修改数据对象的值,但可以改变指针的指向。比如此时指针p不能改变n的值,但是可以指向另一个变量,把上面的代码做修改:
int n = 10, m = 30;
const int *p = &n;//常量指针p初始化指向n
*p = 20;// 这一步错误,这是一个常量指针,不能更改目标数据对象的值
p = &m;//这一步正确,可以修改指向
示例二:
void PrintObj(const int *p);
比如我们要定义一个函数,功能是打印某个对象的值,我们此时只希望函数有打印功能,不希望传进来的指针可以被修改,我们就把它变成常量指针,这样就只能打印,不能修改.
指针常量:指针指向的位置不可变化。
要注意一下,指针常量和其他常量一样,必须在定义时初始化。
此时不可以把指针指向其他地方,但是可以改变指针所指的目标数据对象的值。
示例一:
int n = 10, m = 30;
int *const p = &n;//定义一个指针常量指向n
*p = 40;//合法,可以改变指针所指的目标数据对象的值
p = &m;//不合法,不能修改指针指向。
常量指针常量:指向常量的指针常量(指针的双重只读属性)
他的性质是**:指针值不可改变,指向的目标数据对象也不可改变。**
int n = 10, m = 30;
const int *const p = &n;
*p = 40;//错误
p = &m;//错误
使用场合,作为函数的参数.
上一篇: centos7 常用命令