美文网首页
C语言-const指针

C语言-const指针

作者: 我阿郑 | 来源:发表于2021-12-12 09:37 被阅读0次

    const 指针

    在普通指针类型前面,加上const修饰

    例如:

    const int* p;
    const char* p;
    const double* p;
    

    const 指针:区别

    加不加const,有什么区别?

    // 1-不加const
    int a = 10;
    int* p = &a;
    *p = 20; // 可写
    int b = *p; // 可读
    
    // 2-加上const
    int a = 10;
    const int* p = &a;
    *p = 20; // Error ❌,不可写
    int b = *p; // 可读
    
    

    const的作用是限制星号操作里的写内存功能(这块内存只能读,不能写)

    const指针:用途

    const 用于限定函数的参数

    int test(const int*p, int len) {
        for(int i=0; i<len; i++) {
            printf("%d \n", *p); // 可以读取
            p = p + 1; // 没问题
            *p = 20; // Error ❌ Read-only variable is not assignable
        }
    }
    
    

    用于显式地制定:该函数的参数是输入参数,在函数里面只是读取这个内存,而不会修改这个内存的值
    当你不需要修改内存时,在指针前面加上const修饰,避免一不小心的错误发生。

    const只是限制的星号操作,不允许写内存,但是对于普通的指针加减法是没关系的

    const 一个不常用的语法

    int a = 10;
    int b = 20;
    int* const p = &a; // 这是另一种语法, 实际开发中不会用到
    p = &b; // Error ❌  Cannot assign to variable 'p' with const-qualified type 'int *const'
    
    

    const 总结

    • const 指针:表示该内存是只读的
    • 常用于修饰函数的参数,当被const修饰,表示该参数仅用于输入 int test(const int*p, int len)

    相关文章

      网友评论

          本文标题:C语言-const指针

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