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)

相關文章
相關標籤/搜索