const

1、指针是const数组

含义:表示一旦获得了某个变量的地址,不能再指向其余变量函数

示例:指针

  int *const q = &i;//q是const变量

  *q = 26;//OKco

  q++;//ERROR参数

解释:q只能指向i,不能再指向其余,可是它指向的变量的值是能够改变的,也就是说,i和*p能够被赋予新的值const

2、所指是const

含义:表示不能经过这个指针去修改那个所指的变量

示例:

  const int *p = &i;(*p是const)

  *p = 26;//ERROR!

  i = 26;//OK

  p = &j;//OK

解释:p,i不是const,i和p都可以改变,可是*p是const,也就是说不能经过p去修改i的值

如何区分:const是在“*”以前仍是以后

     在以前:所指是const

     在以后:指针是const

例如:

  int i;

    const int *p1 = &i;

  int const *p2 = &i;

  int *const p3 = &i;

第一个和第二相同,均表示所指是const;第三个表示指针是const !

3、数组与const

 示例:

  const int a[ ] = {1,2,3,4,5};

  数组变量已是const的指针,这里的const代表数组的每一个单元都是const int ,也就是说a[0],a[1],a[2],a[3],a[4]的值均不可改变,因此必须经过初始化赋值;

因为把数组传入函数时传递是地址,因此那个函数内部是能够修改数组的值,为了保证数组不被函数破坏,能够设置参数为const。好比: int sum(const int a[ ],int length)

相关文章
相关标签/搜索