美文网首页
指针和const

指针和const

作者: cancer文 | 来源:发表于2020-04-02 15:58 被阅读0次

    const在*后面

    int i = 1;
     int *const p = &i;
    *p = 26; //ok
    p++; //error
    int j = 100;
    p = &j; //error
    

    int *const p是把指针p变成不可修改 例如

    int *const p = &i; // 假设p 地址为0x7fffe136a798
    

    假设p 地址为0x7fffe136a798,这个值0x7fffe136a798就不能修改,也就是他就指向i是不能变的,i的任何操作都没问题,*p只是取i而已或者赋值i,i的地址没变。
    int * const p 是锁住了p这个变量,也就是p的地址不能变

    const 在*前面

    int i = 1;
     const  int *p = &i;
    *p = 26; //error
    p++; //ok
    int j = 100;
    p = &j; //ok
    

    除了不能通过*p来修改值以外,其他都没问题
    const int p 是锁住了p 让其不能通过 * 来解析获取到p的地址内容

    两个const

    int i = 1;
     const  int * const p = &i;
    *p = 26; //error
    p++; //error
    int j = 100;
    p = &j; //error
    

    这个是否既不能修改p也不能修改指向p的值

    相关文章

      网友评论

          本文标题:指针和const

          本文链接:https://www.haomeiwen.com/subject/glyxphtx.html