c++常量和常量表达式[通俗易懂]

c++常量和常量表达式[通俗易懂]const,默认情况下仅在文件内有效constinti(12);const引用:对常量的引用不能被用作修改它所绑定的对象constintci(5);constint&rci(ci);rci=90;//错误不能修改允许常量引用绑定到非常量的对象、字面值或表达式上inti=20;constint&ri(20);con…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

const,默认情况下仅在文件内有效

const int i(12);

const引用:对常量的引用不能被用作修改它所绑定的对象

const int ci(5);

const int &rci(ci);

rci = 90;//错误 不能修改

 

允许常量引用绑定到非常量的对象、字面值或表达式上

int i = 20;

const int &ri(20);

const int &ri3(i + ri);

 

常量引用仅对引用可参与的操作作出了限定,对于引用的对象本身未做限定

int i(10);

const int &c(i);

i = 90;//i不是常量,可以改变值

c = 20;//错误,c是一个常量引用,const限定了c为常量不能修改,i的修改与c的限定无关。

cout << c << endl;//值为90

 

//指针和const

int iv(10);

int iv1(23);

const int * pci1(&iv);//指向常量的指针,限定了该指针的操作,pci1的值可以改变,pcil指向的值不能变

pci1 = &iv1;

iv = 30;

int * const pci2(&iv);//常量指针,把指针本身定位常量,pci2的值不能改变,pci2指向的值可以改变

*pci2 = 90;

 

cout << *pci1 << endl;//23

cout << *pci2 << endl;//90

 

顶层和底层

顶层:表示指针本身是个常量

底层:指针所指的对象是常量

小技巧:const int * p: const修饰的是*p,也就是*p不能变。

        int * const p: const修饰的是p,也就是p不能变。

 

 

字面值和constexpr

常量表达式:字面值是常量表达式,用常量表达式初始化的const对象也是常量表达式

const int ci = 20;//ci是常量表达式

const int cii = ci + 90;//cii是常量表达式

int iv = 30;//iv不是常量表达式

 

声明为constexpr的变量一定是常量,而且必须用常量表达式初始化

constexpr int cif = 23;

 

constexpr声明的指针,只对指针有效,与指针指向的对象无关

constexpr int cvi(12);//必须定义到函数体外部才能被cip使用

constexpr const int * cip(&cvi);

cout << *cip << endl;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187801.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • php中网页生成图片的方式,类似长微博图片生成器「建议收藏」

    php中网页生成图片的方式,类似长微博图片生成器「建议收藏」导读:因媒体站微博传播需要,需在转发文章至新浪微博时能将文章正文已图片形式传播出去,用以提高微博内容转发积极性,顾需要在原有php项目代码中加入网页转图片功能。 在java中网页转图片有已经开源的转换工具,较为简单,php中网页转图片的开源工具很少,少到只有一个半成品(只能通过命令行调用,无法使用php代码生成)html2image(http://www.guangmingsoft.n…

  • java verifycode_JavaWeb基础—VerifyCode源码

    java verifycode_JavaWeb基础—VerifyCode源码1packagecom.jiangbei.verifycodeutils;23importjava.awt.BasicStroke;4importjava.awt.Color;5importjava.awt.Font;6importjava.awt.Graphics2D;7importjava.awt.image.BufferedImage;8importjava.io.IOExce…

  • 通达OA 公共文件柜二次开发添加管理信息(图文)[通俗易懂]

    通达OA 公共文件柜二次开发添加管理信息(图文)

  • 基于python的情感分析案例_约翰肯尼格的悲伤词典

    基于python的情感分析案例_约翰肯尼格的悲伤词典情感分析是大数据时代常见的一种分析方法,多用于对产品评论的情感挖掘,以探究顾客的满意度程度。在做情感分析时,有两种途径:一种是基于情感词典的分析方法,一种是基于机器学习的方法,两者各有利弊。在此,笔者主要想跟大家分享基于python平台利用情感词典做情感分析的方法。本文主要参考https://blog.csdn.net/lom9357bye/article/details/79058946这篇文章,在此文章中,博主用一句简单的语句“我今天很高兴也非常开心”向我们清楚的展示的利用情感词典做情感分析的方法,这

  • SQL Server学习之路(一):建立数据库、建立表

    SQL Server学习之路(一):建立数据库、建立表0.目录1.前言2.建立数据库2.1通过SSMS建立数据库2.2通过SQL语句建立数据库3.建立表3.1通过SSMS建立表3.2通过SQL语句建立表1.前言配置是win10+SQLServer2012,使用的GUI管理工具是SQLServer2012自带的SQLServerManagementStudio(以下简称SSMS)。本系列主要学习SQLServe…

  • 计算机软件著作权源代码_软件著作权代码页数

    计算机软件著作权源代码_软件著作权代码页数软件著作权源代码文档的要求:代码总共60页,前面30页/后面30页,每页50行。前面30页要连续,后面30页要连续,30页与31页可不连续。代码结尾要有结束标志,不要空格和注释。一、清除整个文档的空行:方法:用ctrl+a(快捷方式),选中全部源程序代码文档;点击word的查找替换功能查找:^p^p;替换为:^p。选择“全部替换”。反复N次,直到全部替换完成。二、清除注释1.清除单行注释//*^13全部替换为空2.清除多行注释/\*\*^13*/^13全部替换为空…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号