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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangchao1992 中级黑马   /  2015-9-18 15:12  /  1220 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

const使用的地方
    1)修饰变量:const修饰变量,使得变量变成常量
   2)修饰指针
#include <stdio.h>
int main(int argc, const char * argv[]) {   
    int a = 10;
    int b = 20;
   
    //定义个指针变量,p指向a
    //此处的const的作用是指针变量p的指向可以改变,但是指向的变量的值
    //不能改变的
   
    //1、const在 * 的 左侧,const修饰的指针变量指向可变,指向的变量的值不可变
    const int *p = &a; //给p初始化
               p = &b;  //重新修改了p的指向
    //*p = 1000;//指向变量的值不可以改变
   
    int const *p1 = &a;
               p1 = p;  //p1的指向也是可以改变
//    *p1 = 100;  //p1指向的变量的值是不能改变的
   
    //2、const在 * 的右侧 ,const修饰的指针变量,指针变量指向的变量值可以变,指向不能变
   
    int * const p2 = &a;
    *p2 = 2000; //值可以改变
    //p2  = &b;  //p2的指向不能变
   
    //3、const在 * 的 两侧,const修饰的指针变量的指向和值,都不能改变
    const int * const p3 = &a;
//    p3  = &b;   //只向不能变
//    *p3 = 100;  //指向的变量的值也不能变
    /*
     记忆技巧:
        看 const 和 * 的位置
        如果 const 在 * 的左侧  表示指针变量指向的变量的值不能变,但是指向可以改变
        如果 const 在 * 的右侧  表示指针变量指向的变量的值可以改变,但是指向不可以改变
        如果 const 出现在 *的两侧,表示指针变量的指向和值都不能改变
     */
    printf("a = %d\n",a);
    return 0;
}

8 个回复

倒序浏览
总结的很好~
回复 使用道具 举报
刚开始看指针。。
回复 使用道具 举报
God chao  ,this blog is very good ,add oil.
回复 使用道具 举报
很详细啊
回复 使用道具 举报
嗷呜~ 求黑马币
回复 使用道具 举报
yolande 来自手机 中级黑马 2015-12-26 00:54:56
7#
对头,指针就这里容易出错,但是一般都是用前者
回复 使用道具 举报
很详细,
回复 使用道具 举报
wkop 中级黑马 2015-12-27 22:02:36
9#
好帖子,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马