欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

常量指针和指针常量和常量指针常量

程序员文章站 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;//错误

使用场合,作为函数的参数.

相关标签: 指针