指针本身和指针所指向的内容都有一个“值”,二者的 const 属性需要分别讨论。

常量的指针
根据我的理解,我把 const * 读成“常量的指针”(const 在左边所以先读,*在右边所以后读),这表示这个指针指向的内容不能通过这个指针修改。需要补充的是:虽然我把const *读成“常量的指针”,但并不是说它不能指向变量。

int i = 10;
int const * p = &i; // OK
*p = 20; // 编译错误,*p是只读对象

指针常量
* 在左边,const 在右边,所以我把它读成“指针常量”,表示这个指针不能被修改(初始化过后就不能修改它的值使其指向其他东西)

#include <iostream>
int main()
{int i = 10;int * const p = &i;*p = 20; // OKint n = 30;p = &n; // 编译错误,p是只读对象return 0;
}

const * 和 * const 的区别相关推荐

  1. const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系

    前言:很多人都把const int * .int * const.int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性          弄不 清楚,今天特意总结一下,作为学习 ...

  2. C语言中auto,register,static,const,volatile的区别

    1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...

  3. const int *,const int * const和int const *有什么区别?

    我总是搞砸了如何正确使用<code>const int* , const int * const和int const * . 是否有一组规则定义您可以做什么和不能做什么? 我想知道在分配, ...

  4. 【iOS基础知识】const与宏的区别

    2019独角兽企业重金招聘Python工程师标准>>> const与宏的区别 区别: 处理时刻:宏是预处理时(即在预处理时把宏展开,替换为原来的值),const是编译运行时(编译器在 ...

  5. var let const声明变量的区别

    在js中定义变量的方式有三种,其中let和const关键字是来自ES6中的,下面将逐一介绍各个关键字声明变量的特点. var声明变量 var 是一个 JS关键字,用来声明变量( variable 变量 ...

  6. C++ 中 const和define的区别

    来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...

  7. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  8. 和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂

    本文主要讲解ES6中变量的相关操作,变量的命名, 讲解 var. let . const 三者的区别 正文 ES6中的 let 和 const 都是用来声明变量的, 他们与 var 有所区别 let ...

  9. 1.C和C++区别,以及const分析(底层const/顶层const)

    从本章起开始从0学习C++,本章主要内容: 1)C和C++的基本区别 2)C和C++的const区别 1.C++和C区别 1.1 C++更强调语言的实用性,所有变量都可以在需要时再定义 比如: for ...

  10. const char*, char const*, char*const的区别

    const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混. Bjarne在他的T ...

最新文章

  1. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
  2. python代码格式-pyhon代码设计格式指南
  3. 转:Linux查看CPU信息、机器型号等硬件信
  4. egret键盘事件监听
  5. MySQL数据库视图(view),视图定义、创建视图、修改视图
  6. AUTOSAR从入门到精通100讲(一)-SPI、UART、I2C总线详解
  7. Scikit-Learn简单操作
  8. 【工具】开发环境之vagrant
  9. ~~~~练习~~~~用户登录(三次机会重试)
  10. Windows应用程序组成及编程步骤
  11. 虚拟机linux启动是来宾账户,配置Openstack Nova以自动启动在主机重新引导之前运行的guest虚拟机...
  12. 第十九周—c语言 电子词典项目
  13. 51单片机之矩阵键盘
  14. 快捷方式图标变成白色
  15. 如何修改计算机ip 地址子网掩码,如何查看和修改主机的ip地址和子网掩码
  16. 千兆光纤 GBIC和SFP接口规格介绍
  17. Linux 文件和目录管理
  18. 人工智能书单|Deep Learning on Graphs
  19. 视频教程-数字成像系统-其他
  20. highcharts legend图例禁止点击事件以及鼠标移入样式保持不变

热门文章

  1. python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形...
  2. Algorithm:数学建模大赛之数学建模基础(经验/技巧)、流程(模型准备/模型假设/建模/求解/分析/优化/预测/评价)、论文写作(意义/摘要/关键词/问题重述和模型假设/建模/文献)之详细攻略
  3. 成功解决ValueError: ‘usecols‘ must either be list-like of all strings, all unicode, all integers or a ca
  4. NLP:NLP领域没有最强,只有更强的模型——GPT-3的简介、安装、使用方法之详细攻略
  5. 成功解决 ValueError: feature_names mismatch training data did not have the following fields
  6. Blockchain:《Blockchain applications in insurance》Deloitte—德勤区块链技术研究报告正文版—听课记录
  7. 新项目新工作空间新仓库新setting文件
  8. XGBoost的理解
  9. LuoguP2754 [CTSC1999]家园(分层图,最大流)
  10. Windows 10 安装 Docker for Windows