当前位置: 首页 > wzjs >正文

苏州高端网站建设咨询项目计划书ai生成

苏州高端网站建设咨询,项目计划书ai生成,WordPress设置评论通过,wordpress图片下载水印前言 constexpr是c11引入的关键字,其和const都是用来定义常量的,本文将详解两者的区别。 在我的博客中查看本文章 const const一般用于修饰变量、引用、指针,标记它们为常量。然而,const并未区分编译期常量和运行期常量&#x…

前言

constexpr是c++11引入的关键字,其和const都是用来定义常量的,本文将详解两者的区别。
在我的博客中查看本文章

const

const一般用于修饰变量、引用、指针,标记它们为常量。然而,const并未区分编译期常量和运行期常量,只能保证变量运行时不被直接修改。

const变量,其值不能发生改变:

const int x = 100; // 常量
x = 200; // 无法通过编译

const引用,无法通过引用修改变量的值:

int x = 10;
const int& ref = x;
// ref = 20; // 无法通过编译
x = 20; // 通过编译
cout << "ref = " << ref << endl; // 输出:ref = 20。虽然不能通过ref直接修改变量值,但可以通过x修改

const引用,不能通过指针修改其所指向的值,但指针本身可以指向其他的地址:

int a = 10;
int b = 20;
const int* ptr = &a;
// *ptr = 5; // 错误,不能修改指针指向变量的值
ptr = &b; // 正确,可以修改指针指向

指向常量的指针的指向可以发生改变,若要限制指针本身为常量,需要调整const的位置:

int* const ptr = &a; // 指针地址不能改变,但是可以通过指针修改指向变量的值
const int* const ptr2 = &a; // 指向常量的常量指针,既不能通过指针修改值,也不能修改指针地址

此外,const还能修饰成员函数,表明该函数不会修改对象的状态(成员变量):

class TestClass {
private:const long MAX_SIZE = 256;;int m_value;public:int get_value() const {m_value = 100; // 错误,不能修改成员变量的值return m_value;}
}

constexpr

const并没有区分编译期常量和运行期常量,我们用下面这个例子来说明:

#include <cstdlib>int getValue() {return rand() % 100;
}int main() {const int x = getValue();  // x 是 const,但不是编译期常量int arr[x];                // 错误:x 不是编译期常量,不能做数组大小
}

编译期程序还没开始运行,只有字面值常量可以确定

运行期所有表达式都能求值

constexpr即constant expression(常量表达式),进一步将修饰的内容限定为编译期常量。

constexpr修饰变量时,编译器能在编译时确定变量值:

constexpr int x = 5; // 编译期常量
int arr[x];          // 数组大小合法

constexpr修饰函数时,当其参数是constexpr时,函数会生成编译期常量。而使用非constexpr变量调用时,在运行时生成值:

constexpr int square(int x) {return x * x;
}constexpr int val = square(10); // 编译期求值

非constexpr值,则当做普通函数使用:

constexpr int square(int x) {return x * x;
}int x = rand();
int y = square(x); // 合法,作为普通函数使用

参考

C++ 中让人头晕的const & constexpr
constexpr (C++)

http://www.dtcms.com/wzjs/797947.html

相关文章:

  • 网站转小程序工具网站开发人员职位晋升空间
  • 如何制作简易 网站重庆网站开发服务器
  • 烟台 网站建设摄影设计工作室
  • 无忧网站建设多少钱网页设计图片的边框怎么做
  • 做网站的主要作用百度推广优化怎么做
  • 珠海 电商 网站建设招聘网站怎么做效果好
  • 企业门户网站案例青浦练塘网站建设
  • 初识网站开发流程图南宁电商网站建设
  • 备案后网站可以改名吗wordpress 百科 插件
  • 做兼职的网站绵阳高端网站建设
  • 男女做暧暧网站免费怎么做广告宣传效果好
  • 郑州英语网站建设网页设计与制作教程杨选辉课后答案
  • 农产品网站的品牌建设wordpress 右下角漂浮的广告如何添加
  • 谷歌官方网站首页零基础学做衣服的网站
  • 内网网站建设流程网站的建站过程
  • 企业内部网站建设滑县网站建设服务
  • 钓鱼网站链接怎么做网站开发的费用计入什么科目
  • 恒星科技网站建设wordpress图片七牛云加速
  • 网站和服务器的关系网站建设与管理必修
  • 邢台市住房和城乡建设局网站怎么查询最新网站
  • 购物网站 后台it外包wordpress模板
  • 如何做网站分析app网站多少钱
  • 无锡网站建设价格诸城网站建设定制
  • 分销网站建站全网型网站建设方案
  • 怎么做签到网站联科网站建设
  • 河南网站优化做电商运营有前途吗
  • 网站建设方案 doc阿里云主机怎么做两个网站吗
  • 怎么建立网站?购买模板建站
  • 厦门模板做网站品牌网站设计制作哪家好
  • 能进封禁网站的手机浏览器扁平化网页设计图片