欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > C++ :顶层const与底层const的区别

C++ :顶层const与底层const的区别

2025/3/19 5:40:18 来源:https://blog.csdn.net/m0_72737486/article/details/146349622  浏览:    关键词:C++ :顶层const与底层const的区别

顶层const与底层const的区别 

定义与核心区别
顶层 const (Top-level const)底层 const (Low-level const)
作用对象变量本身是常量(不可修改)变量指向或引用的对象是常量(不可修改)
典型场景指针本身不可变、普通变量为常量指针/引用指向的值不可变
是否影响类型不影响类型兼容性(如函数重载)影响类型兼容性(如函数重载、类型转换)
示例 1:指针中的顶层与底层 const
int a = 10;// 底层 const:指向的值不可变(const 在左侧)
const int* p1 = &a;  // p1 可指向其他地址,但 *p1 不可修改
p1 = &a;             // 合法:修改指针地址
// *p1 = 20;         // 非法:底层 const 禁止修改值// 顶层 const:指针本身不可变(const 在右侧)
int* const p2 = &a;  // p2 不可指向其他地址,但 *p2 可修改
// p2 = &a;          // 非法:顶层 const 禁止修改指针地址
*p2 = 20;            // 合法:修改指向的值// 双重 const
const int* const p3 = &a;  // 指针和指向的值均不可变
示例 2:引用中的底层 const
int b = 30;
const int& ref = b;  // 底层 const:通过 ref 无法修改 b
// ref = 40;         // 非法
b = 40;              // 合法:直接修改原始变量

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词