const 修饰符

/*
 * const 修饰指针
 *
 * 1 常量指针
 * 2 指针常量
 * 3 const既修饰指针,又修饰常量
 *
 */

#include <iostream>

int main() {

    int a = 10;
    int b = 10;

    //常量指针:
    //特点:指针的指向可以修改,但是指针指向的值不可以改
    const int *p1 = &a;
//    *p1 = 20;//错误
    p1 = &b;//正确

    //指针常量
    //特点:指针的指向不可以改,指针指向的值可以改
    int * const p2 = &a;
    *p2 = 20;//正确
//    p2 = &b;//错误

    //const既修饰指针,又修饰常量
    //指针的指向和指针指向的值都不可以改
    const int * const p3 = &a;
//    *p3 = 20;//错误
//    p3 = &b;//错误
}

另外,在函数参数传递时,一般不使用值传递(会额外申请内存),当使用地址传递或引用传递时,可以加上const修饰符防止对不想要改变的变量的误操作。

发布了39 篇原创文章 · 获赞 8 · 访问量 7945

猜你喜欢

转载自blog.csdn.net/weixin_40512640/article/details/103473672