int * const a;
const int * a;请问各位朋友,上面两个语句的区别在哪里?到底 const 起什么作用,真正是指什么为 const !谢谢!

解决方案 »

  1.   

    前面一行表示指向const类型(int)的指针,后者表示指向int*的指针,指针本身是const的
      

  2.   

    前者表示指向const int的指针,后者表示指向int的指针,指针本身是const的。
      

  3.   

    看这里:
    http://community.csdn.net/Expert/topic/3282/3282374.xml?temp=.8341638
      

  4.   

    前者标明数据不可变(data const),后者修饰指针不可变(指针const)
      

  5.   

    int array[10];int * const a;
    a = array;       // 赋值,不允许int * const a = array;  // 初始化,允许
    a[0] = 0;       // 修改内容,允许
    a[1] = 1;       // 修改内容,允许const int * a = array;  // 初始化,允许
    a = array;       // 赋值,允许
    a[0] = 0;       // 修改内容,不允许
    a[1] = 1;       // 修改内容,不允许
      

  6.   

    上面一个是指指向不变常量A的指针
    下面的是常量指针,
    比如const int a = 4;
    b = int * const a;   //b就是指向a的指针,a的值不能改变,但是b可以,如果a是数组,b可以用来遍历b = const int * a  //b为指针,是常量指针,只能指向a,不能变,a的值可以变