A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huguozhang 中级黑马   /  2015-7-9 16:51  /  1143 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

        记忆技巧

            看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的指向可以改变,但是指向的变量的值不能改变的

   

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

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

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

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

   

    int const *p1 = &a;

    p1 = p;

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

   

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

   

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

    int  * const p2 = &a;

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

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

   

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

    const int * const p3=&a;

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

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

   

   


}


评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

1 个回复

倒序浏览
赞一个   !!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马