iOS之路18-const *与* const的区别

  1. 首先把握一个原则, const修饰谁, 谁不变spa


    int age = 10;    指针

    int money = 200;orm

    

    // 这里const 修饰的是 *p1, *p1是不变的, 可是p1是可变的变量

    int const * p1 = &age;margin

    

    // 这里const 修饰的是 p2,  p2是不变的,  可是*p2 是可变的top

    int * const p2 = &age; co

 

    *p1 = 999; // 错误 *p1 是不能修改的错误

    p1 = &money; // 正确const

    *p2 = 999;  // 正确

    p2 = &money; // 错误  p2是不能修改的




小结: 这里*p1能够理解为 不能修改age的值(p1指向的变量地址的值), 可是能够修改p1指针的指向, 让其指向&money(money的地址), *p2 能够理解为 能够修改p2指向变量的地址的值, 可是不能修改p2的指向, 对应着比较好理解