zoukankan      html  css  js  c++  java
  • constexpr和常量表达式的注意事项

    1、常量表达式,是指其值不可改变,且在编译阶段就已经得出计算结果的表达式,例如字面值就是常量表达式。

    2、判断是否是常量表达式,要关注数据类型是否是const类型,初始值是否是在编译阶段就得到的。

    3、C++11新标准,允许用constexpr类型去声明变量,让编译器去判断是否是常量表达式,必须用常量进行初始化,并且与该类型协同的还有一个constexpr函数,以后补充。

    4、声明constexpr的类型必须是字面值类型。

    5、定义成constexpr的指针和引用的初始值有限制,指针的初始值只能是nullptr、0或者存储于某一个固定地址的对象,故函数体内的变量一般不能被其指向。

    6、若函数体内定义的对象有效范围超过函数本身,那么其也是具有固定地址的,也能被constexpr指针所指向或者引用所绑定。

    7、constexpr声明的指针,仅对指针有效,与其所指的内容无关,也就是说,限定符constexpr会将其定义的对象变成顶层const。

    8、constexpr const int *p=&i;  //指向常量的指针常量。  constexpr int *p1=&j;  //指向一个整型变量的指针常量

  • 相关阅读:
    C语言博客作业04--数组
    DS博客作业04--树大作业
    Java课程设计
    JAVA课设-五子棋-团队博客
    yue
    Java扫雷设计
    java课设--五子棋
    软件工程-个人总结
    JAVA课程设计个人博客
    JAVA第09次实验(IO流)
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9365925.html
Copyright © 2011-2022 走看看