C++顶层const与底层const

const用于修饰常量,被其修饰的值无法被改变。

顶层const: 修饰指针,指针本身是个常量,不能改变所指地址。

底层const: 修饰值,指针所指向的值是个常量,无法被修改。

测试

copy
int 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; // ? ~~~~^~~
posted @   RunTimeErrors  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
🚀