当前位置: 代码迷 >> 综合 >> C++中const和指针的结合
  详细解决方案

C++中const和指针的结合

热度:6   发布时间:2024-02-23 10:07:56.0

       本文内容:C++中const与指针的三种结合方式。

目录

一、const修饰符

二、const与指针

(1)const指针

(2)指向const对象的指针

(3)指向const对象的const指针


一、const修饰符

       在C++中使用关键字const定义常量,const常量在定义时赋初值,以后只能使用而不能改变。const是一个左结合类型的修饰符。

二、const与指针

(1)const指针

       int* const p = &m;(定义时必须初始化)

       const位于*右侧,由于const是左结合修饰符,所以const修饰*(即const修饰指针),指针本身是常量。此时不能修改指针所指向的对象,但能修改指针指向对象的值。

//1. const指针
int b = 10;
int* const a = &b;
cout<<"修改b前:"<<*a<<endl;
b = 5;
cout<<"修改b后:"<<*a<<endl;
//输出结果
/*修改b前:10修改b后:5
*/

(2)指向const对象的指针

       const int *p;或int const *p;

       const位于*左侧,由于const是左结合修饰符,所以const修饰变量。此时不能修改指针指向对象的值,但能修改指针指向的对象。

//2. 指向const对象的指针
int m = 5;
int n = 10;
int const *p = &m;
cout<<"指针指向的对象未修改:"<<*p<<endl;
p = &n;
cout<<"指针指向的对象已修改:"<<*p<<endl;
//输出结果
/*指针指向的对象未修改:5指针指向的对象已修改:10
*/

(3)指向const对象的const指针

       const int* const p = &q;或int const* const p = &q;(定义时必须初始化)

       此时既不能修改指向指向的对象,也不能修改指针所指向对象的数值。

  相关解决方案