这篇文章主要介绍了C++ const和指针,关于使用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和指针内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
文章转自公众号:Coder梁(ID:Coder_LT)
本文标题为:C++ const和指针详情
基础教程推荐
- [C语言]二叉搜索树 2023-09-07
- C语言编程C++旋转字符操作串示例详解 2022-11-20
- C语言 详解字符串基础 2023-03-27
- C++实战之二进制数据处理与封装 2023-05-29
- [c语言-函数]不定量参数 2023-09-08
- C语言实现宾馆管理系统课程设计 2023-03-13
- 带你深度走入C语言取整以及4种函数 2022-09-17
- centos 7 vscode cmake 编译c++工程 2023-09-17
- 全面了解C语言 static 关键字 2023-03-26
- C++实现ETW进行进程变动监控详解 2023-05-15
