zoukankan      html  css  js  c++  java
  • 指针常量与常量指针的区别

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

    // 对象非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; 这都是错误的

  • 相关阅读:
    <JZOJ5912>VanUSee
    <JZOJ5910>duliu
    <JZOJ5913>林下风气
    pytest学习笔记(二)
    试用saucelabs进行浏览器兼容性测试
    pytest学习笔记(一)
    SSM框架搭建,以及mybatis学习
    游戏2048的python实现
    使用svn在github上下载文件夹
    jenkins集成python的单元测试
  • 原文地址:https://www.cnblogs.com/rightnow/p/2680514.html
Copyright © 2011-2022 走看看