constexpr变量

constexpr变量C 11 规定 可以将变量声明为 constexpr 用于编译器在编译阶段来验证变量的值是不是常量表达式 因此 constexpr 修饰的变量必须用常量 or 常量表达式来初始化 到目前为止 算数类型 指针 引用都可以定义为 constexpr 而 Io 自定义类 string 等不可以 constexprint 20 正确 20 是常量表达式 constexprint i

C++11规定,可以将变量声明为constexpr,用于编译器在编译阶段来验证变量的值是不是常量表达式。

因此,constexpr修饰的变量必须用常量or常量表达式来初始化。到目前为止,算数类型、指针、引用都可以定义为constexpr,而Io、自定义类、string等不可以。

constexpr int i = 20; //正确,20是常量表达式 constexpr int i2 = i + 1; //正确,i+1是常量表达式 constexpr int i3 = size(); //只有size()的返回值类型是constexpr,才正确 constexpr string s1 = ""; //错误 
int i = 0; const int j = 0; int main() { 
    int m = 0; static int n = 0; constexpr int *p = 0; //正确 constexpr int *p1 = nullptr; //正确 constexpr int *p2 = &i; //正确,i是全局变量,地址固定 constexpr int *p3 = &j;//错误,constexpr是顶层const,而j是const类型。应该是const int *p3 = &j; constexpr int *p4 = &m; //错误,m是局部变量,地址不固定 constexpr int *p5 = &n; //正确,n的地址固定 return 0; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210699.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:05
下一篇 2026年3月19日 上午7:05


相关推荐

  • java 构造函数的作用_Java中构造函数的作用(转)

    java 构造函数的作用_Java中构造函数的作用(转)https://blog.csdn.net/vipmao/article/details/51530954,我觉得讲的非常好,学习到了构造函数的最大作用就是创建对象时完成初始化,当我们在new一个对象并传入参数的时候,会自动调用构造函数并完成参数的初始化。如下:publicclassTest{privateStringname;//有参数的构造函数publicTest(Stringn…

    2025年9月2日
    11
  • 从OpenClaw热到“龙虾局”:光合组织何以打造AI智能体应用新范式

    从OpenClaw热到“龙虾局”:光合组织何以打造AI智能体应用新范式

    2026年3月13日
    1
  • {转载}circos绘图(2)

    {转载}circos绘图(2)https wenlongshen github io 2017 03 22 Circos 2 本章主要对 circos 环图中最基本的元素进行设置 包括 karyotype ideogram ticks 等模块 KaryotypeKar 的信息就如同坐标轴一般 其大小 顺序 位置等直接决定了后续数据的展示 这里我们新建一个 karyotype conf 文件用来设置 karyotyp

    2026年3月17日
    2
  • Flurl中文文档(使用教程)[通俗易懂]

    Flurl中文文档(使用教程)[通俗易懂]Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件。https://codedefault.com/course/subject/flurl-zh-doc

    2022年7月4日
    25
  • SOAP协议

    SOAP协议一、SOAP与HTTP的区别HTTP只负责把数据传送过去,不论这个数据是XML、HTML、图片、文本文件或者其他形式。SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等。二、SO

    2022年6月30日
    33
  • linux查看磁盘io使用情况

    linux查看磁盘io使用情况top 命令 vmstat 命令 iostat 命令 iotop 命令 pt ioprofile 命令 top 11 41 22up51min 2users loadaverage 0 01 0 04 0 01Tasks 130total 1running 129sleeping 0stopped 0zombieCpu s 0 2 us 0 1 sy 0 0 ni 99 2 id 0 4 wa 0 0 hi 0 0 si 0 0 stMem 4151

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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