zoukankan      html  css  js  c++  java
  • 指针常量extern NSString * const

    注意到,在使用NSNotificationCenter的时候,会需要声明字符串常量,作为NSNotificationCenter的name。这时,const的位置就比较重要,很容易让不了解的人犯错误:

    错误的写法(常量指针):

    extern const NSString * RNFooDidCompleteNotification;

    正确的写法(指针常量):

    extern NSString * const RNFooDidCompleteNotification;

    这里涉及到常量指针和指针常量的概念,简单的来说:

    • 常量指针:就是指向常量的指针,关键字 const 出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。
    • 指针常量:指针自身是一个常量,关键字 const 出现在 * 右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。

    在此例中:我们知道,NSString永远是immutable的,也是一个指针常量,所以NSString * const 是有效的,而const NSString * 则是无效的。而使用错误的写法,则无法阻止修改该指针指向的地址,使得本应该是常量的值能被修改,造成了隐患。这是需要注意的一个常见错误。

  • 相关阅读:
    洛谷 P4861 按钮
    《情人》
    bzoj1019: [SHOI2008]汉诺塔(dp)
    hdu5698瞬间移动(组合数,逆元)
    poj Code(组合数)
    组合数 牛顿二项式定理 杨辉三角
    8.22 NOIP 模拟题
    codevs2495 水叮当的舞步(IDA*)
    codevs 2541 幂运算(迭代加深搜索)
    较复杂搜索,剪枝
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7814927.html
Copyright © 2011-2022 走看看