zoukankan      html  css  js  c++  java
  • 关于const 和指针

    这个很久之前就很困扰的问题,现在再理一下:

    1,指向const对象的指针

    》C++强制要求指向const对象的指针也必须具有const特性!!!也就是不能把一个const对象的地址赋给一个非const对象的指针!

    》而该指针的const特性限定了该指针所指向的对象的类型,而并非该指针本身。

    eg. const int i = 0;

         const int *p = &i;    //OK

         int *p = &i;           //error

    》不能用void *指针保存const对象的地址,而必须用const void *类型的指针保存const对象的地址

    》允许把非const对象的地址赋给指向const对象的指针,并不能通过该指针改变其值(但是可以通过其他方式改变)

    2,const指针

    》其本身的值不能修改!即初始化后就不能指向其他的地址!!

    》与任何const量一样,在定义const指针时必须进行初始化!但是指向const对象的指针不必

    eg. int i = 0;

         int *const P = &i;    //不能指向const int类型的对象!

    3,指向const对象的const指针

    》既不能修改初始化后的指针指向的地址,也不能修改指向对象的值!(必须在定义的时候初始化)

    eg. const int i = 0;             //所指向的对象必须是const类型,而不能是非const

         const int *const p = &i;

    4,指针和typedef

    》typedef中使用指针就不能单纯的当做文本扩展

    eg. typedef string *ps;

         const ps cstr;

    可等价于

         string *const cstr;

    并且和

         ps const cstr;

    也是等价的,都可指向string类型的对象。

          

  • 相关阅读:
    查看真机的系统版本sdk
    查看真机的系统中sdk的版本
    用Appium去操作移动设备上的chrome
    adb devices 显示error
    创建一个web Test Plan
    Maven2的配置文件settings.xml(转)
    解决HierarchyViewer不能连接真机的问题
    利用Hudson持续集成来执行Android自动化测试(转)
    eclipse中修改maven仓储
    Appium的理念
  • 原文地址:https://www.cnblogs.com/day-dayup/p/3575198.html
Copyright © 2011-2022 走看看