• 指针常量与常量指针的区别


    // 指针常量与常量指针的区别

    // 对象非const
    //
    int a = 1;
    int b = 1;

    // 允许修改指针指向对象的值、指针的地址
    int *p = &a;

    // eg.1 允许修改指针指向对象的值,而不能修改指针指向的地址,即:指针常量
    int *const p1 = &a; // error: p1 = &b;

    // eg.2 允许修改指针指向的地址,而不能修改指针指向的地址的值,即:常量指针
    const int *p2 = &a; // error: *p2 = 100;

    // eg.3 等同于eg.2,允许修改指针指向的地址,而不能修改指针指向的地址的值
    int const *p3 = &a; // error:*p3 = 100;

    // 对象为const
    // 指向const对象的指针,必须同为const,否则C++编译出错
    int const c = 1; // error:int *p = &c;
    int const d = 1;

    // eg.4 与eg.2相似,允许修改指针指向的地址,而不能修改指针指向的地址的值
    const int *p4 = &c; // error:*p4 = 100;

    // eg.5 等同于eg.4,允许修改指针指向的地址,而不能修改指针指向的地址的值
    int const *p5 = &c; // error:*p5 = 100;

    // 最后一种
    // eg.6 不允许修改指针指向的地址,以及指针指向的地址的值
    const int *const p6 = &a; // error:p6 = &b; *p6 = 100; 这都是错误的

  • 相关阅读:
    最大公约数
    面向对象(jianli)(游客买门票)
    String
    ATM模拟取款
    常用快捷键归纳
    购物清单
    jxls使用模版导出Excel
    IText 生成pdf,处理table cell列跨页缺失的问题
    Java使用IText(VM模版)导出PDF
    js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
  • 原文地址:https://www.cnblogs.com/rightnow/p/2680514.html
Copyright © 2020-2023  润新知