首页 > 其他分享 >constexpr 和常量表达式

constexpr 和常量表达式

时间:2024-09-15 11:51:22浏览次数:1  
标签:const 常量 指向 int constexpr 表达式 指针

常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。

指针和 constexpr

必须明确一点,在 constexpr 声明中如果定义了一个指针,限定符constexpr 仅对指针有效,与指针所指的对象无关:

const int *p=nullptr;     // P是一个指向整型常量的指针
constexpr int *q=nullptr; // q是一个指向整数的常量指针

p和q的类型相差甚远,p是一个指向常量的指针,而q是一个常量指针,其中的关键在于 constexpr 把它所定义的对象置为了顶层 const(参见 2.4.3 节,第 57 页)。

与其他常量指针类似,constexpr 指针既可以指向常量也可以指向一个非常量:

constexpr int *np=nullptr;  //np是一个指向整数的常量指针,其值为空
int j=0;
constexpr int i=42;         //i的类型是整型常量
//i和j都必须定义在函数体之外
constexpr const int *p=&i;  //p是常量指针,指向整型常量i
constexpr int *p1= &j;      //P1是常量指针,指向整数j




摘自:《C++ Primer》 P60

标签:const,常量,指向,int,constexpr,表达式,指针
From: https://www.cnblogs.com/huvjie/p/18415115

相关文章

  • constexpr声明 常量表达式
     constexpr是C++中用于声明常量表达式的关键字,表示一个变量或函数的值在编译时就可以确定,而不是在运行时计算。这对优化非常有用,因为编译器可以直接将结果嵌入到程序中,减少运行时的开销。通俗解释:变量篇:如果你有一个constexpr变量,它的值在编译时就已经固定好......
  • Python 入门教程(3)基础知识 | 3.2、数据类型、变量与常量
    文章目录一、数据类型、变量与常量1、数据类型2、变量3、常量一、数据类型、变量与常量1、数据类型Python的数据类型可以分为不可变类型和可变类型。不可变类型包括整数、浮点数、布尔值和元组,一旦创建,其值就不能改变。可变类型包括列表、字典和集合,它们的值可以......
  • Python 从入门到实战16(正则表达式语法)
            我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。上篇文章我们通过举例学习了字符串一些操作说明。今天讨论一下正则表达式的语法。也是经常会用到的。1、正则表......
  • NetCore DynamicExpresso 动态表达式使用例子
    Simple.cs简单使用例子usingDynamicExpresso;namespaceDynamicExpressoDemo{classCustomer{publicstringName{get;set;}}publicclassSimple{publicstaticvoidTest(){//返回结果Interpreter......
  • 常量指针、指针常量及常量指针常量
    目录1.常量指针(PointertoConstant)2.指针常量(ConstantPointer)3.常量指针常量(ConstantPointertoConstant)常量指针:指针指向的值不能改,但指针本身可以指向其他地址。指针常量:指针本身不能改,但可以修改指向的值。常量指针常量:指针和指针指向的值都不能改。常量指......
  • SpEL 表达式注入
    SpEL表达式注入spel是什么SpEL(SpringExpressionLanguage),即Spring表达式语言,比JSP的EL更强大的一种表达式语言。特别是方法调用和基本的字符串模板功能。Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系,而SpEl可以方便快捷的对ApplicationContext中......
  • JavaScript语法入门五 常量
    常量声明一个常量就是声明一个常数。声明之后就不能修改(不能通过重新赋值进行修改)。使用const关键字。该关键字是ES6新增加的关键字。用const声明常量时,必须初始化。例子1:constmyBirthday='18.06.1981';例子2:<script> constPERSON='jack' {   constPERSON='tom' ......
  • 【C语言基础】数据类型、运算符和表达式
    1数据类型基本类型整型:短整型,基本整型,长整型字符型实型(浮点型):单精度型,双精度型枚举类型构造类型:是使用基本类型的数据或者使用已经构造好的数据类型,进行添加、设计构造出新的数据类型,使其设计的新构造类型满足待解决问题所需要的数据类型。数组类型结构体类型共用体类......
  • 【编程底层原理】String常量池和String.intern()
    一、String常量池String常量池(StringPool)是Java中的一个特殊内存区域,用于存储字符串常量。它的主要目的是优化程序的性能和内存使用,具体体现在以下几个方面:1、字符串重用:当程序中多次出现相同的字符串字面量时,它们都会被存储在String常量池中。由于常量池的唯一性,相同的......
  • vue优点/插值表达式/强制绑定
    1.Vue.js的优点体积小:压缩后只有33k;更高的运行效率:基于虚拟DOM,一种可以预先通过JavaScript进行各种计算,把最终的DOM操作计算出来并优化的技术,由于这种DOM操作属于预处理操作,并没有真实的操作DOM,所以叫做虚拟DOM;双向数据绑定:让开发者不用再去操作DOM对象,把更多的精力投入到业务......