zoukankan      html  css  js  c++  java
  • iOS 里const在修饰对象时候的用法

    玩iOS的小伙伴对const应该很不陌生, 在声明全局常量的时候很多时候都会用到, 

    但是有时候修饰对象很迷惑下面是个人总结, 下面的地址都是模拟

    1. 

    const NSString *str1 = @"123";
    str1 = @"ads";

      

    /*
     -- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
    |   0x123456  str1    0x654321  || 123 ----   0x654321 | // const 修饰的是 *str, 而*str 是值, 所以const 修饰的就是值123
    |             str1    0x654221  || ads ----   0x654221 | // 因为const 修饰的是值 所以 指针str 还是可变的(可以指向其他值)
    */

    2. 

    NSString const *str2 = @"456";
    str2 = @"zxc";
    /*
     -- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
    |   0x123464  str2    0x654311  || 456 ----   0x654311 | // 与上面同理
    |             str2    0x654211  || zxc ----   0x654211 |
    */

    3. 

    NSString* const str3 = @"789";
    str3 = @"qwe"; // 报错
    /*
     -- 对象地址 -- 对象 -- 指向的地址 ---- 值 ------ 值地址 ---
    |   0x123478  str3    0x654301  || 789 ----   0x654301 | // const 修饰的是 str3, 而str3 是指针(指向的是值的地址),
    |                               ||                     |    所以const 修饰的就是值789 的地址值
    |   0x123478  str3    0x654301  || qwe ----   0x654201 | // 因为const 修饰的是指针(指向的是值的地址)
    |                               ||                     |    所以 指针str3 是不可变的(不可以指向其他地址)
    */
  • 相关阅读:
    wxpython的安装

    拓扑排序
    树,二叉树,森林,三者的转换
    二叉树的遍历
    最短路径
    图的遍历
    图的最小生成树
    哈夫曼树的应用
    哈夫曼树
  • 原文地址:https://www.cnblogs.com/MrTao/p/8609621.html
Copyright © 2011-2022 走看看