2013年4月2日 星期二

C Language - Const

Const

const 意味著固定不變的意思。所以當變數設定為const時,此一變數的值是不允許被變更的,換句話說這個值會在初始的時候便決定。

Example


int main(int argc, char **argv)
{
    const int a = 10;
    
    a = 11; // compiler will return an error message

    return 0;
}

Usage

一般使用可能會和pointer一起使用,在判讀上面會有困擾,底下列出幾個比較常出現的寫法。
  1. const int a;
    • a 是int type而且是const
  2. const int *p;
    • pointer p 指向一個const int value 
  3. int const *p;
    • pointer p是const
  4. int * const p;
    • pointer p 指向一個const int value
  5. const int * const p
    • pointer p 指向一個const int value; 而且pointer p是const
以筆者的經驗來說,case 2和case 3比較容易搞混。以case 2來說,我會解讀成const修飾int *p,而*p是代表pointer p指向的記憶體內容。而case 3,我會解讀成const修飾 p這個pointer。
一點心得,有錯歡迎指正。

沒有留言:

張貼留言