/*
关于顶层const和底层const的解析
顶层const表示:指针本身是一个常量
底层const表示:指针的指向的对象是一个常量
*/
#include<iostream>
using namespace std;
int main()
{
int i = 0;
int* const p = &i; //p是一个顶层const,表示p的值不能被改变
const int ci = 42; //ci是一个顶层的cosnt,ci的值不能被改变
const int* p2 = &ci; //p2是一个底层的const,p2所指向的对象的值不能改变
const int* const p3 = p2;//p3既是一个顶层const又是一个底层const,该对象的值和对象指向的对象值都不能改变
const int& r = ci; //用于引用声明的const都是底层const
//当执行对象的拷贝操作时,常量是顶层cosnt还是底层const区别明显,其中,顶层const不受什么影响。
//底层const的限制缺不能忽视。当执行对象的拷贝操作时,拷入和拷出的对象必须有相同的底层const资格
//或者两个对象的数据类型能够转换。
return 0;
}在这里插入代码片
顶层const和底层const的辨析
最新推荐文章于 2023-03-13 17:18:22 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)