关闭

const修饰符 const与指针

标签: c语言const修饰符const与指针
130人阅读 评论(0) 收藏 举报

    /*

        记忆技巧

            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;//指向的变量的值也不能变

    

    


}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10666次
    • 积分:424
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章存档