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

常量表达式

时间:2023-02-14 12:12:04浏览次数:37  
标签:变量 nullptr constexpr 指针 表达式 常量

常量表达式——常量表达式指的是值不会改变,并且计算结果在编译过程就能得出的表达式。

  C++11新增的constexpr就是为直接检测某一表达式是否是常量表达式而存在,使用constexpr声明的变量后,编译器会自动检测表达式。

  字面值类型如算术类型、引用类型和指针类型都能定义成常量表达式。

  这里需要强调的是,虽然指针和引用都能够声明为常量表达式,但是他们受到了严格的限制。指针在定义为常量表达式时,其初值必须是0,nullptr或者是存储与固定地址中的对象。constexpr指针等价于常量指针,也就是说,它只限定了声明指针本身,与所指对象无关。例如:constexpr int* a = nullptr 等价于 int* const a = nullptr; ,可以理解的是既然表达式的值在编译过程中就能确定,那么他的初值赋值对象也必须是在编译过程中就确定的。具体来说,一般在函数体内部的变量其地址都是不固定的,而函数体外部则固定,所以函数外部的变量通常可以用来初始化constexpr指针,而内部变量则不行。

标签:变量,nullptr,constexpr,指针,表达式,常量
From: https://www.cnblogs.com/meetalone/p/17119134.html

相关文章

  • python 项目如何使用三元表达式?
    对于精通Python语言的程序员来说,Python有一种语法刚入行的人看到会一脸懵,坦白的来说他其实非常的简单,仅仅只是一个语法,别拿它太当回事,知道会用就OK了。对于我个人来说......
  • linux008之echo命令显示系统变量和常量
    linux中的系统变量和常量:简介:这里说的变量和常量与windows中的环境变量类似,如在windows中配置的java的环境变量,是这么配置的。java_home:xxxxx/bin,这个时候如果在linu......
  • Lambda表达式与Stream API
    Lambda表达式与StreamAPI​​1、Lambda表达式​​​​1.1Lambda表达式语法​​​​1.2案例:实现Comparator接口​​​​1.3类型推断​​​​1.4Lambda类型推断​​​​2......
  • 【转发】Python正则表达式,感谢大佬
    原文:https://www.cnblogs.com/QYGQH/p/12653871.html#!comments python正则表达式的实现主要是通过python的re库,re库是python的标准库,所以无须安装1.正则表达式的常用......
  • 代码随想录算法Day11 | 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,逆波兰表达
     20.有效的括号题目链接: 20.有效的括号-力扣(LeetCode)题目给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用......
  • java中的lambda表达式
    java中的lambda表达式历史背景到目前为止,在Java中传递一个代码段并不容易,不能直接传递代码段,Java是一种面向对象语言,所以必须构造一个对象,这个对象的类需要有一个方法......
  • EL表达式
    在jsp中使用对象获取数据,较为麻烦,于是有了EL表达式  一、数据来源它只能获取到pageContext、request、session、application对象中的数据。 二、获取数据......
  • Spider理论系列-Re(正则表达式)
    正则是抓取网页数据的入门技能之一,正则可以全局通配你想要的数据,就比如:​​Spider实战系列-抓取《一人之下第三季》_浅辄的技术博客_51CTO博客​​这篇文章里,我想要通过源......
  • java中的lambda表达式(从小白也能看懂做起)
    历史背景到目前为止,在Java中传递一个代码段并不容易,不能直接传递代码段,Java是一种面向对象语言,所以必须构造一个对象,这个对象的类需要有一个方法能包含所需的代码但是......
  • 代码随想录算法训练营第十一天【栈与队列】20.有效的括号、1047.删除字符串中的所有相
    20.有效的括号力扣题目链接心得:栈的经典题目,先进后出,有三种return false的情况。1)遍历字符串完成,但是栈不为空。说明左括号比右括号多,导致栈中多存了数据2)遍......