指標和常量

meiguang1028發表於2011-03-25

   使用一個指標涉及到兩個物件:該指標本身和被它所指的物件。將一個指標的宣告用const “預先固定” 將使那個物件而不是使這個指標成為常量。要將指標本身而不是被指物件宣告為常量,我們必須使用宣告運算子*const, 而不是隻用簡單的const。 例如,

 

void f1(char* p)

{

      char s[] = "Gorm";

     

      const char* pc = s;                                     //指向常量,即指標本身是可以改變的。

      pc[3] = 'g';                                                //錯誤:pc是指向常量的

      pc = p;                                                     //OK

      char *const cp = s;                                  //常量指標,即指標不能改變了,但指向的內容可以改變。

      cp[3] = 'a';                                              //OK

      cp = p;                                                   //錯誤:cp是常量指標

 

      const char *const cpc = s;                     //到const的const指標

      cpc[3] = 'a';                                          //cpc指向常量

      cpc = p;                                               //cpc本身是常量

}

相關文章