首页后端开发其他后端知识C++中const和指针作用是什么,怎样用

C++中const和指针作用是什么,怎样用

时间2024-03-28 13:02:03发布访客分类其他后端知识浏览1130
导读:这篇文章给大家分享的是“C++中const和指针作用是什么,怎样用”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“C++中const和指针作用是什么,怎样用”吧。...
这篇文章给大家分享的是“C++中const和指针作用是什么,怎样用”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“C++中const和指针作用是什么,怎样用”吧。


1、指针和const

我们知道const关键字修饰的是不可变量,将它和指针一起使用,会有很多微妙的地方。

关于使用const来修饰指针,有两种不同的方式。第一种是让指针指向一个常量对象,这样可以防止使用该指针进行修改指向的值。第二种则是将指针本身声明为常量,可以防止改变指针指向的位置。下面我们来看下细节。

1.1 指向常量的指针

首先是指向常量的指针,含义是指针的类型是一个常量类型。所以写成:

const int * p;
    


可以理解成p是一个指针,它的类型是const int,也就是常量类型。它既可以用来指向一个常量类型,也可以指向一个非常量类型,下方的这两种方式都是合法的:

int age = 23;
    
const int* p = &
    age;
    

const double price = 233;
    
const double* pt = &
    price;
    


但是反过来,将一个const类型的变量赋值给一个非const的指针是非法的:

const int age = 23;
    
int* p = &
    age;
     // 非法


如果非要这样做,可以使用const_cast运算符进行强制转换,这个我们会在之后的文章当中讨论。

另外还有一个很有意思的点,如果我们将一个非const类型的变量赋给了const类型的指针,虽然我们无法通过指针修改对应的值,

但是通过变量修改却是可以的:

int age = 23;
    
const int* p = &
    age;
    

*p = 233;
     // 非法
age = 233;
     // 合法


还有,我们无法修改指针指向的值,但是修改指针指向的位置是可以的:

int age = 23;
    
int price = 233;
    
const int* p = &
    age;
    
p = &
    price;
    

1.2 const指针

上面我们介绍了指向const的指针,还有另外一种指针叫做const指针。const指针指的是指针本身是const修饰的,我们无法修改指针指向的位置。

int age = 23;
    
int* const p = &
    age;
    


但是我们修改指针指向的值是可以的:

*p = 2333;
     // 合法

1.3 指针和内容都不可变

当然我们也可以将两种const叠加使用,让指针指向的对象以及对象的值都不可修改:

const int * const p = &
    age;
    

感谢各位的阅读,以上就是“C++中const和指针作用是什么,怎样用”的内容了,通过以上内容的阐述,相信大家对C++中const和指针作用是什么,怎样用已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

C++const指针

若转载请注明出处: C++中const和指针作用是什么,怎样用
本文地址: https://pptw.com/jishu/654956.html
C++函数指针什么用,怎样声明和实现传参 JS中如何获取和处理PHP数组

游客 回复需填写必要信息