C++顶层const与底层const
const用于修饰常量,被其修饰的值无法被改变。
顶层const: 修饰指针,指针本身是个常量,不能改变所指地址。
底层const: 修饰值,指针所指向的值是个常量,无法被修改。
测试
copyint main() { int d1 = 1, d2 = 2; int* const p1 = &d1; // 顶层const const int* p2 = &d2; // 底层const *p1 = 2; p1 = p2; // 报错 std::cout << "&d1: " << p1 << "\n d1: " << *p1 << "\n"; *p2 = 1; // 报错 p2 = p1; std::cout << "&d2: " << p2 << "\n d2: " << *p2 << "\n"; }
copy.\test.cpp: In function 'int main()': .\test.cpp:26:8: error: assignment of read-only variable 'p1' 26 | p1 = p2; // ? ~~~^~~~ .\test.cpp:28:9: error: assignment of read-only location '* p2' 28 | *p2 = 1; // ? ~~~~^~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!