C++ 指针常量和常量指针的区别

指针常量
指针常量:顾名思义它就是一个常量,但是是指针修饰的。
格式为:

int * const p //指针常量

在这个例子下定义以下代码:

int a,b;
int * const p=&a //指针常量
//那么分为一下两种操作
*p=9;//操作成功
p=&b;//操作错误

在这里插入图片描述

因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改。

常量指针
常量指针:如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针,格式如下:

const int *p = &a; //常量指针int const* p = &a;

在这个例子下定义以下代码:

int a,b;
 const int *p=&a //常量指针
//那么分为一下两种操作
*p=9;//操作错误
p=&b;//操作成功

在这里插入图片描述
因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可通过该指针修改,但是指针指向的值可以改变。

判断限制域的时候,const总是修饰其左侧标识符,如果const位于最左侧则修饰其右侧标识符

指向常量的指针常量该怎么写?

const int * const b = &a;//指向常量的指针常量

参考:
[1]http://t.csdnimg.cn/g3K8u
[2]https://zhuanlan.zhihu.com/p/337321951

相关推荐

  1. C++中常量指针指针常量

    2023-12-12 13:30:07       23 阅读
  2. C/C++指针、万能指针常量指针指针常量

    2023-12-12 13:30:07       13 阅读
  3. c++指针引用区别

    2023-12-12 13:30:07       29 阅读
  4. C++里指针引用区别

    2023-12-12 13:30:07       16 阅读
  5. C语言空指针常量NULL

    2023-12-12 13:30:07       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 13:30:07       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 13:30:07       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 13:30:07       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 13:30:07       20 阅读

热门阅读

  1. Windows使用virtualenv创建python环境

    2023-12-12 13:30:07       42 阅读
  2. 使用CloudCompare计算点云曲率 - 编程指南

    2023-12-12 13:30:07       44 阅读
  3. C++相关闲碎记录(7)

    2023-12-12 13:30:07       29 阅读
  4. UGUI - 动态赋值后刷新不及时问题

    2023-12-12 13:30:07       44 阅读
  5. VTK:使用AlignFrames进行帧对齐的用法

    2023-12-12 13:30:07       41 阅读
  6. 基于协同过滤算法的旅游推荐系统设计与实现

    2023-12-12 13:30:07       40 阅读