const理解

2017-03-29  本文已影响22人  ThaiLanKing

关于const ** const的理解,可以参考[C C++ OC指针常量和常量指针区别]这篇文章。

该篇文章中提到一个诀窍:** (指针) const(常量) 谁在前先读谁,谁在前谁不允许改变。*
我个人的记忆方法是:const修饰谁,谁就不可变。

    int a = 10;
    int b = 20;
    
    int * const constValue = &a;
    const int * constPValue = &b;
    
    NSLog(@"constValue = %d, constPValue = %d", *constValue, *constPValue);
    
    //constValue = &b; //报错,constValue是不可变的
    *constValue = 15;
    
    //*constPValue = 25; //报错,*constPValue是不可变的
    constPValue = &a;
    
    NSLog(@"constValue = %d, constPValue = %d", *constValue, *constPValue);

打印结果为:

constValue = 10, constPValue = 20
constValue = 15, constPValue = 15

const在此处的影响: constValue不能再指向其他内存,但是constValue当前指向的内存中的值可以改变

const在此处的影响:constPValue当前指向的内存中的值不可以被改变(特指通过constPValue改变),但是可以指向其他内存。


const int a;
上一篇下一篇

猜你喜欢

热点阅读