const * 和 * const 的区别
指针本身和指针所指向的内容都有一个“值”,二者的 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 的区别相关推荐
- const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系
前言:很多人都把const int * .int * const.int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性 弄不 清楚,今天特意总结一下,作为学习 ...
- C语言中auto,register,static,const,volatile的区别
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- const int *,const int * const和int const *有什么区别?
我总是搞砸了如何正确使用<code>const int* , const int * const和int const * . 是否有一组规则定义您可以做什么和不能做什么? 我想知道在分配, ...
- 【iOS基础知识】const与宏的区别
2019独角兽企业重金招聘Python工程师标准>>> const与宏的区别 区别: 处理时刻:宏是预处理时(即在预处理时把宏展开,替换为原来的值),const是编译运行时(编译器在 ...
- var let const声明变量的区别
在js中定义变量的方式有三种,其中let和const关键字是来自ES6中的,下面将逐一介绍各个关键字声明变量的特点. var声明变量 var 是一个 JS关键字,用来声明变量( variable 变量 ...
- C++ 中 const和define的区别
来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用con ...
- uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客blog.csdn.net 全局作用域中,用 const 和 l ...
- 和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂
本文主要讲解ES6中变量的相关操作,变量的命名, 讲解 var. let . const 三者的区别 正文 ES6中的 let 和 const 都是用来声明变量的, 他们与 var 有所区别 let ...
- 1.C和C++区别,以及const分析(底层const/顶层const)
从本章起开始从0学习C++,本章主要内容: 1)C和C++的基本区别 2)C和C++的const区别 1.C++和C区别 1.1 C++更强调语言的实用性,所有变量都可以在需要时再定义 比如: for ...
- const char*, char const*, char*const的区别
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混. Bjarne在他的T ...
最新文章
- bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
- python代码格式-pyhon代码设计格式指南
- 转:Linux查看CPU信息、机器型号等硬件信
- egret键盘事件监听
- MySQL数据库视图(view),视图定义、创建视图、修改视图
- AUTOSAR从入门到精通100讲(一)-SPI、UART、I2C总线详解
- Scikit-Learn简单操作
- 【工具】开发环境之vagrant
- ~~~~练习~~~~用户登录(三次机会重试)
- Windows应用程序组成及编程步骤
- 虚拟机linux启动是来宾账户,配置Openstack Nova以自动启动在主机重新引导之前运行的guest虚拟机...
- 第十九周—c语言 电子词典项目
- 51单片机之矩阵键盘
- 快捷方式图标变成白色
- 如何修改计算机ip 地址子网掩码,如何查看和修改主机的ip地址和子网掩码
- 千兆光纤 GBIC和SFP接口规格介绍
- Linux 文件和目录管理
- 人工智能书单|Deep Learning on Graphs
- 视频教程-数字成像系统-其他
- highcharts legend图例禁止点击事件以及鼠标移入样式保持不变
热门文章
- python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形...
- Algorithm:数学建模大赛之数学建模基础(经验/技巧)、流程(模型准备/模型假设/建模/求解/分析/优化/预测/评价)、论文写作(意义/摘要/关键词/问题重述和模型假设/建模/文献)之详细攻略
- 成功解决ValueError: ‘usecols‘ must either be list-like of all strings, all unicode, all integers or a ca
- NLP:NLP领域没有最强,只有更强的模型——GPT-3的简介、安装、使用方法之详细攻略
- 成功解决 ValueError: feature_names mismatch training data did not have the following fields
- Blockchain:《Blockchain applications in insurance》Deloitte—德勤区块链技术研究报告正文版—听课记录
- 新项目新工作空间新仓库新setting文件
- XGBoost的理解
- LuoguP2754 [CTSC1999]家园(分层图,最大流)
- Windows 10 安装 Docker for Windows