const修饰符 const与指针

    /*

        记忆技巧

            const  * 的位置

            如果 const  * 左侧 表示指针变量指向变量的值不能改变,但是指向可以改变

     

            如果 const  * 右侧 表示指针变量指向变量的值可以改变,但是指向不能改变

     

            如果 const 出现在 * 两侧 表示指针变量指向变量的值和指向都不能改变

     */


/*

    const 

        是一个类型修饰符

        使用const修饰变量则可以让变量的值不能改变

        常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

 

    (1)   const int Max=100; int Array[Max];

 

    (2) 便于进行类型检查,如果被改变编译器会报错

 

    (3) 可以让保护的值 免于被修改

 

    (4) 可以节省空间  提高效率

     ...

 

    const的使用

        1) 修饰变量

            int a = 10

 

    

        2) 修饰指针变量

 

        3) 修饰数组

 */

void demo2(){

    int a= 5;

    int b=10;

    

    //此处的const的作用是指针变量p的指向可以改变,但是指向的变量的值不能改变的

    

    //1const修饰的指针变量指向可变,指向的变量的值不可变

    const int *p = &a; //p初始化

    p = &b;  //重新修改了p的指向

    // *P = 1000;  这样是错误的

    

    int const *p1 = &a;

    p1 = p;

    // *p1=100; 这样是错误的

    

    printf("a=%d\n",a);

    

    //2const修饰的指针变量,指针变量指向的变量值可以变,指向不能变

    int  * const p2 = &a;

    *p2 = 2000; //值可以改变

    // p2 = &b;  这样是错误的 p2的指向不能变

    

    //3const修饰的指针变量的指向和值,都不能改变

    const int * const p3=&a;

    // p3 = &b;  //指向不能变

    // *p3 = 100;//指向的变量的值也不能变

    

    


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值