当前位置:首页 > 问问

什么是常指针 C++中常指针的定义及作用

什么是常指针

在C++中,指针是一种非常重要的数据类型,它存储的是一个对象或变量的地址。指针是C++中最常用的数据结构,有时候也会存在指向常量的指针。而常指针就是一个指向常量类型的指针,即指针指向一个常量对象或者是一个常量表达式。

常指针的定义及使用

常指针的定义方法为在指针定义时,在类型前面加上const关键字即可,指针不可修改所指对象的值:

const int *p; //定义一个指向常量整型的指针p,因为指针指向整型,所以指针前面要加 constint const *q; //等同于上面,把 const 放在类型前面或后面都可

如果使用指针修改所指对象的值会导致编译错误。

const int i = 10;int *p = &i; //编译错误,不能将指向常量的指针赋给普通指针

常指针与常量的区别

常指针与常量的区别在于指针本身的值是否可修改,常量是值不能修改,而常指针是指针的值不能修改。

const int i = 10; //定义一个常量i

int const *p = &i; //定义一个指向常量的指针p

p = NULL; //可以更改指针p的值

int j = 20;

p = &j; //可以修改p所指的对象,但不能通过p来修改j的值,否则编译错误

*p = 30; //编译错误

常指针的作用

常指针常用于函数参数中,表示函数对该指针指向的对象只读,不能对其进行修改。

void func(const int *p); //定义一个函数,参数为指向常量整型的指针

int main() {

int i = 10;

func(&i); //调用函数,传入参数为i的地址

return 0;

void func(const int *p) { //对函数参数进行修改时会编译错误

*p = 20; //编译错误

}

常指针与指针常量的区别

常指针是指针指向的对象是一个常量,而指针常量是指针本身是一个常量,不可以更改指针指向的地址。

int i = 10;

int j = 20;

int const *p1 = &i; //指向常量的指针p1不能通过指针修改 i 的值

int *const p2 = &i; //指针常量p2不能修改指针指向的地址,即不能做如下操作:

p2 = &j; //编译错误,指针常量的值不能改变

*p2 = 30; //可以通过指针修改 i 的值
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章