首页 > 编程语言 >C++ 顶层const底层const

C++ 顶层const底层const

时间:2024-09-23 11:24:56浏览次数:12  
标签:p2 p3 顶层 const int ci C++

int i =0;
int *const pl = &i;    //不能改变p1的值,这是一个顶层 const
const int ci=42;       //不能改变 ci的值,这是一个顶层 const
const int *p2 =&ci;    //允许改变p2的值,这是一个底层 const
const int *const p3=p2;//靠右的const是顶层const,靠左的是底层 const
const int &r=ci;       //用于声明引用的 const 都是底层 const
i = ci;  //正确:拷贝ci的值,ci是一个顶层const,对此操作无影响
p2 = p3; //正确:p2和p3指向的对象类型相同,p3顶层const的部分不影响
int *p=p3;        //错误:p3 包含底层 const的定义,而p没有
p2 = p3;          //正确:p2和p3 都是底层 const
p2 = &i;          //正确:int*能转换成 const int*
int &r=ci;        //错误:普通的int&不能绑定到int常量上
const int &r2 =i; //正确:const int&可以绑定到一个普通int上



《C++ Primer》 P58




标签:p2,p3,顶层,const,int,ci,C++
From: https://blog.51cto.com/u_15698411/12087892

相关文章

  • 【华为OD机试真题E卷】545、预订酒店 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java
    文章目录一、题目......
  • 【华为OD机试真题E卷】544、数字涂色 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java
    文章目录一、题目......
  • c++多线程,锁
    1)机器最大线程数uint16_tmax_thread=thread::hardware_concurrency();2)vector中管理线程获取线程ida)thread::id_id=std::this_thread::get_id();b)threadth(getSum_vector,ref(arr),ref(_sum));cout<<th.get_id();容器中存储线程变量:使用emplace_back原位构造a......
  • 南沙C++信奥老师解一本通题 1260:【例9.4】拦截导弹(Noip1999)
    ​【题目描述】某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦......
  • Qt C++设计模式->组合模式
    组合模式(CompositePattern)是一种结构型设计模式,允许你将对象组合成树形结构以表示部分与整体的层次关系。组合模式使得客户端可以以统一的方式对待单个对象和组合对象,简化了对复杂树形结构的操作。组合模式的应用场景组合模式非常适合用于需要处理树形结构的场景,比如文件系......
  • 【C++驾轻就熟】string类以及string类的模拟实现
    目录一、为什么学习string类?二、标准库中的string类 2.1string类(了解)2.2string类的常用接口说明 1.string类对象的常见构造 2.string类对象的容量操作3.string类对象的访问及遍历操作 4.string类对象的修改操作5.string类非成员函数 三、 string类的......
  • C++ 列表初始化 {}
    花括号的形式{},进行列表初始化,在C++11中初始化变量到了全面的应用。可参看《C++Primer》P39P76P88等相关内容信息。Note:当我们提供一个类内初始值时,必须以符号=或者花括号表示。《C++Primer》P246。如下:classDog{public:Dog(intage):m_age(age){}......
  • c++中内置函数
    intmain(){autofactorial=[&](intn,auto&&self)->int{if(n<=1)return1;returnn*self(n-1,self);//调用自己};std::cout<<"Factorialof5:"<<factorial(5,factorial)......
  • [OpenCV] 数字图像处理 C++ 学习——16直方图均衡化、直方图比较 详细讲解+附完整代码
    文章目录前言1.直方图均衡化的理论基础(1)什么是直方图(2)直方图均衡化原理(3)直方图均衡化公式2.直方图比较理论基础(1)相关性(Correlation)——HISTCMP_CORREL(2)卡方(Chi-Square)——HISTCMP_CHISQR(3)十字交叉性(Intersection)——HISTCMP_INTERSECT(4)巴氏距离......
  • c++中字符/串->整数
    char字符->整数数字:std::isdigit用于判断某个字符是否为数字(0-9)。字符串->数字:std::stoi用于将字符转换为整数。intisdigit(intch);//std::isdigit接受的参数类型为int,通常会传递字符类型(char)作为参数,但是字符会自动转换为对应的int值。intstoi(conststd::string&......